对象引用使用FirstOrDefault时未设置为对象错误的实例

Moh*_*han 7 c#

当我使用下面的代码时,我得到对象引用错误,这可能是因为"蜘蛛"没有匹配.我的问题是,如何在这些情况下检查空值

int fooID = foos.FirstOrDefault(f => f.Bar == "spider").ID;
Run Code Online (Sandbox Code Playgroud)

我正在使用相同的场景来处理从列表中获取不同项目的不同条件

int fooID = foos.FirstOrDefault(f => f.Bar == "spider").ID; 
String fooDescription = foos.FirstOrDefault(f => f.Sides == "Cake").Description; 
Run Code Online (Sandbox Code Playgroud)

有没有其他方法来检查空值.

Tre*_*ley 8

与通常情况相同,分配变量并进行检查.

var foo = foos.FirstOrDefault(f => f.Bar == "spider");

if (foo != null)
{
    int fooID = foo.ID;
}
Run Code Online (Sandbox Code Playgroud)

根据您更新的示例,您需要执行此操作:

var fooForId = foos.FirstOrDefault(f => f.Bar == "spider");
var fooForDescription = foos.FirstOrDefault(f => f.Sides == "Cake");

int fooId = fooForId != null ? fooForId.Id : 0;
string fooDescription = fooForDescription != null ? fooForDescription.Description : null; // or string.Empty or whatever you would want to use if there is no matching description.
Run Code Online (Sandbox Code Playgroud)

  • @Mohan然后你应该更新你的例子,这样我们有一半机会了解你想要实现的目标. (2认同)