0

我创建了一个新的用户类型的空列表用户我的 EDM 中的实体)

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

我还有另一个用户类型的列表,其中填充了查询结果

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

然后我希望循环Locums List,做一些逻辑,然后将用户添加到我的AvailableLocums List

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);     
}

但我又得到了同样的错误

你调用的对象是空的。

有人可以帮我吗?

谢谢。

4

5 回答 5

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);
}
于 2012-09-18T11:01:24.800 回答
3

您正在取消该列表

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

因此,例外。您不需要此行来创建一个空列表:

AvailableLocums = null;
于 2012-09-18T10:57:16.813 回答
1

走出这条线:

AvailableLocums = null;

一切都会好的...您声明新对象并在下一行将其设置为null?

于 2012-09-18T10:58:17.623 回答
0

尝试

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

在 _shiftDateService.GetAvailableLocums 之前...

于 2012-09-18T10:59:46.720 回答
0

试试这个代码。

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

*您可以使用任何名称而不是“newUserRecord”。

于 2012-09-18T11:46:13.040 回答