允许将空值添加到列表中

时间:2011-12-21 11:08:30

标签: c# .net linq anonymous-types

我删除了所有不必要的变量,并直接关注手头的问题。我有一个可以返回空值的变量:

var ppl = from p in xyz.new_ppl
          select new
          {
              p.name
          };

我查询它并将其添加到列表中:

foreach (var peeps in ppl)
{
    peopleList.Add(peeps.name);
    peopleNames = peopleList;
}

当我在select语句之前添加要检查的where子句以使用此语句检查空值时,这是有效的

where p.name != null

我希望能够做的是允许添加空值。所以我尝试了firstordefault但是没有用

name = p.name.FirstorDefault()

错误说我无法将字符串转换为字符串。 peopleNames是string类型的setter,getter方法。任何变通方法或解决方案?

3 个答案:

答案 0 :(得分:2)

from p in xyz.new_ppl
select p.name;

答案 1 :(得分:0)

你愿意这样尝试吗?

var ppl = from p in xyz.new_ppl
          select new
          {
              p == null ? null : p.name
          };

答案 2 :(得分:0)

执行p.name.FirstorDefault()时,表示您尝试获取字符串p.name的第一个字符。所以编译错误是正确的(我不知道为什么它不能隐式地将字符转换为字符串 - 但这是另一个故事:))

但是如果你想要添加空值,为什么不删除where p.name != null