2014-03-05 329 views
0

我的方法返回一个包含对象列表的响应对象。将对象列表复制到另一个对象中另一个对象的另一个列表中

public class GetAccountsListResponse 
{ 
    public List<AccountsList> Accounts { get; set; } 
} 

public class AccountsList 
{ 
    public string AccountId { get; set; } 
    public string AccountName { get; set; } 

} 

我想这样的事情,但即时得到空refernce例外:

public GetAccountsListResponse GetAccountsList() 
    { 

     AccountRepository objRepo = new AccountRepository(); 
     GetAccountsListResponse res = new GetAccountsListResponse(); 

     List<Account> lstAccnts = new List<Account>(); 
     lstAccnts = objRepo.GetAccountsFromRepo(); 

     foreach (var item in lstAccnts) 
     { 
      res.Accounts = new List<AccountsList>(); 
      res.Accounts.ForEach(c => c.AccountId = item.AccountId);  

     } 

     return res; 
    } 

请帮我解决这个问题。

+0

在哪一行,你收到此 –

+0

貌似lstAccnts *力量*赶回来空的调用'objRepo.GetAccountsFromRepo()'。 – Baldrick

+2

'res.Accounts = new List (); res.Accounts.ForEach(c => c.AccountId = item.AccountId);'这两行没有意义。你创建'新的List <>'和'ForEach'?它将始终有零元素 –

回答

3

这是显而易见的,你只创建一个没有在所有 实例化对象的新列表尝试这样的事情

res.Accounts = new List<AccountsList>(); 
    foreach (var item in lstAccnts) 
    { 

     res.Accounts.Add(new AccountsList(){AccountId =item.AccountId});  

    } 
+0

这也没有意义 –

+0

回答编辑现在看看为什么不这样做会从lstAccnts创建一个新列表并添加项目到res.Accounts –

+0

谢谢你的工作。我如何使用LINQ来做到这一点? – Imp

相关问题