在列表中搜索时如何避免 Nullreference 异常

Cat*_*iss 3 c# nullreferenceexception

我正在尝试获取包含特定字符串的列表项,并且我正在使用以下代码:

string myListLine= myList.FirstOrDefault(stringToCheck => stringToCheck.Contains("mystring "));
Run Code Online (Sandbox Code Playgroud)

一切正常,但如果列表不包含特定字符串,则会抛出错误:

你调用的对象是空的

我认为我应该以某种方式验证该字符串是否首先存在,但不确定什么是最好的方法。

Mon*_*Zhu 5

如果列表不包含特定字符串,则会抛出错误:

这是不正确的。抛出异常,因为null列表中有一个值!如果列表中的所有项目都是有效字符串,则不会抛出异常。在这种情况下FirstOrDefault将简单地返回null

我认为我应该以某种方式验证该字符串是否首先存在

您可以先用oldscool方法检查它是否为null,然后将其与逻辑AND&&Contains方法结合起来

string myListLine= myList.FirstOrDefault(stringToCheck => 
           stringToCheck != null && stringToCheck.Contains("mystring "));
Run Code Online (Sandbox Code Playgroud)

这样,Contains如果第一个条件的计算结果为,则不会计算第二个条件FALSE