C# 如何在linq查询中检查空值

C# 如何在linq查询中检查空值,c#,linq,C#,Linq,我得到对象空引用错误。我试着像下面那样检查null,但仍然得到错误 List<Data> gvdta = (List<Data>)Session["Items"]; switch (this.dd_search.SelectedValue) { case "emp": var tb = (from ad in gvdta where ad!=null & ad.emp.ToLower().

我得到对象空引用错误。我试着像下面那样检查null,但仍然得到错误

List<Data> gvdta = (List<Data>)Session["Items"];
switch (this.dd_search.SelectedValue)
{
    case "emp":                
    var tb = (from ad in gvdta
              where ad!=null & ad.emp.ToLower().Contains(this.txt_Search.Text.ToLower())
              select ad);
       gvdta = tb.ToList();            
    break;
}
List gvdta=(List)Session[“Items”];
开关(此.dd\u搜索.SelectedValue)
{
案例“emp”:
变量tb=(来自gvdta中的ad)
其中ad!=null&ad.emp.ToLower()包含(this.txt_Search.Text.ToLower())
选择广告);
gvdta=tb.ToList();
打破
}

还有别的办法吗?请帮助。谢谢。

在中使用
&&
运算符

where ad!=null && ad.emp.ToLower().Contains(this.txt_Search.Text.ToLower()). 
&
是一种按位运算符,始终对两边进行求值。从

无论第一个运算符的值是多少,&运算符都会对两个运算符进行求值 价值观

条件AND运算符(&&)对其bool执行逻辑AND 操作数,但仅在必要时计算其第二个操作数


在中使用
&
运算符

where ad!=null && ad.emp.ToLower().Contains(this.txt_Search.Text.ToLower()). 
&
是一种按位运算符,始终对两边进行求值。从

无论第一个运算符的值是多少,&运算符都会对两个运算符进行求值 价值观

条件AND运算符(&&)对其bool执行逻辑AND 操作数,但仅在必要时计算其第二个操作数


您检查过gvdta是否为空吗?可能是您的
选择值
为空,并且它应该是
&
而不是
&
,或者如果
ad.emp
this.txt\u search.Text
为空,请在
广告中使用
&
运算符=null&&ad.emp.ToLower()包含(this.txt\u Search.Text.ToLower())
&
是一种按位运算符,始终对两边进行求值。@Fabio它应该是一个答案您是否检查了gvdta是否为空?可能是您的
SelectedValue
为空,它应该是
&
而不是
&
或者如果
ad.emp
此.txt\u search.Text
为空?请在
where ad中使用
&
运算符=null&&ad.emp.ToLower()包含(this.txt\u Search.Text.ToLower())
&
是位运算符,其中两边都将始终求值。@Fabio它应该是一个答案我刚刚更改了
其中ad=空
其中ad.emp!=空
,也使用&&。现在工作正常了。谢谢。我刚换了
where广告=空
其中ad.emp!=空
,也使用&&。现在工作正常了。谢谢