Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/linq/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
c#从Linq返回的空值_C#_Linq - Fatal编程技术网

c#从Linq返回的空值

c#从Linq返回的空值,c#,linq,C#,Linq,当前有一个列表,您可以通过用户输入将客户详细信息添加到该列表中。随后在软件中,我使用linq搜索列表,以查找列表中是否已经存在客户详细信息。我目前有一个if语句(如下所列),它从linq获取返回值,并显示客户是否已经在列表中存储了详细信息 Customer cust = finder.list.where(c => c.ID.ToString() == textBox.txt).FirstOrDefault(); if(cust.ID == null) {

当前有一个列表,您可以通过用户输入将客户详细信息添加到该列表中。随后在软件中,我使用linq搜索列表,以查找列表中是否已经存在客户详细信息。我目前有一个if语句(如下所列),它从linq获取返回值,并显示客户是否已经在列表中存储了详细信息

    Customer cust = finder.list.where(c => c.ID.ToString() == textBox.txt).FirstOrDefault();

    if(cust.ID == null)
    {
        lstDisplay.items.add("Customer details not stored")
    }
我遇到的问题是,一旦程序到达if语句并出现错误:“对象引用未设置为对象的实例”,程序就会崩溃

火车是空的

如何处理返回的null


如果null返回到值train.ID,我想将其与If语句中的null进行比较。如果为空,则我希望能够像以前一样显示消息框

您需要检查
cust
是否为空

if(cust?.ID == null)
{
    lstDisplay.items.Add("Customer details not stored")
}

要查看cust.ID是否为null,需要检查整个cust对象是否为null简单解决方案:检查
cust
是否为null是否知道customer表中的ID字段可为null?i、 例如,“int?”(使用问号)这是无效的Linq…
其中
是大写的。同样在
Where
条件下,如果
ID==null
,那么在到达
if
语句之前,这将失败:
c.ID.ToString()
。因此,您也应该更改该部分:
.Where(c=>c.ID?.ToString()==textBox.txt)
cust
上检查
null
就足够了:
如果(cust==null)
@JuanR应该是,您会认为ID是必填字段:)@JuanR是的,在OP的原始代码中,如果
ID==null
,然后
Where
条件中的
c.ID.ToString()
调用将在
语句到达之前失败,
if
语句也应该大写。。。