我删除了所有不必要的变量,并直接关注手头的问题。我有一个可以返回空值的变量:
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方法。任何变通方法或解决方案?
答案 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
?