2012-09-18 33 views
0

我创造型用户的一个新的空列表用户是一个实体在我的EDM)C#添加对象要列出

List<User> AvailableLocums = new List<User>(); 
AvailableLocums = null; 

我也有型用户这是另一个列表与查询的结果填充

List<User> Locums = _shiftDateService.GetAvailableLocums(id, shiftDate.shiftDateID).ToList(); 

然后我希望周围的代理医生负责环列表,做一些逻辑和n个用户添加到我的AvailableLocums列表

foreach (var locum in Locums) 
{ 
    //Do some logic 

    AvailableLocums.Add(locum); 

} 

然而,当我尝试这样做,我得到了下面的错误不设置到对象的实例

对象引用。

我又试图修改我的代码,然后执行以下

foreach (var locum in Locums) 
{ 
     //Do some logic 

     User locumUser = new User(); 
     locumUser = locum; 

     AvailableLocums.Add(locumUser);  
} 

但我再次得到了同样的错误不设置到对象的实例

对象引用。

可能有人请帮助我?

谢谢。

回答

3

您在清空该列表

List<User> AvailableLocums = new List<User>(); 
AvailableLocums = null; // HERE 

因此例外。你并不需要这一行做一个空表:

AvailableLocums = null; 
1

摆脱这一行:

AvailableLocums = null; 

,这将是好的... 你宣布新的对象,并在下一行,它为空?

0

尝试

List<User> Locums = new List<User>(); 

_shiftDateService.GetAvailableLocums前...

5

你告诉你的变量 “AvailableLocums” 不再指向内存中任何东西。

卸下: AvailableLocums = NULL;

怎么样:

List<User> AvailableLocums; 
List<User> Locums; 

// get id for shift date service 
// int id = ... 

// get locums from shift date service 
Locums = _shiftDateService.GetAvailableLocums(id, shiftDate.shiftDateID).ToList(); 

// time to add to AvailableLocums 
if(AvailableLocums == null) 
    AvailableLocums = new List<User>(); 

foreach (var locum in Locums) 
{ 
    //Do some logic 

    AvailableLocums.Add(locum); 
} 
0

试试这个代码。

List<User> AvailableLocums = null; 
List<User> Locums = _shiftDateService.GetAvailableLocums(id, shiftDate.shiftDateID).ToList(); 
AvailableLocums = Locums.Where(newUserRecord => newUserRecord != null).ToList(); 

*你可以采取 “newUserRecord” 的任何名称来代替。

+0

您可以使用Lambda表达式而不是使用foreach –