允许空值被添加到列表中

本文关键字:添加 列表 许空值 空值 | 更新日期: 2023-09-27 18:18:24

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

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子句来检查null值时,使用该语句

where p.name != null

我想要能够做的是允许添加空值。所以我尝试了firstdefault,但是没有成功

name = p.name.FirstorDefault()

错误提示不能将char类型转换为string类型。peoplnames是字符串类型的setter getter方法。有什么变通或解决方案吗?

允许空值被添加到列表中

from p in xyz.new_ppl
select p.name;

你想这样试试吗?

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

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

但是如果你想要添加null,为什么不直接删除where p.name != null呢?