【发布时间】:2013-02-07 20:52:48
【问题描述】:
哪种空值检查方式更好用,为什么?
var myVar = myCollection.FirstOrDefault(q => q.Id == 10);
if (myVar != null)
{
anotherVar = myVar.MyName;
}
或:
var myVar = myCollection.Where(q => q.Id == 10);
if (myVar.Any())
{
anotherVar = myVar.First().MyName;
}
还是没有区别?
【问题讨论】:
-
您的第二个选项不涉及空值检查?
-
@Haxx:第二种方式不能为null,因为它是一个集合,不能为null,只能为空。
-
我的观点完全正确。所以这不是关于“哪种空值检查方式更好用,为什么?”还是我仍然错过了重点? :)
-
只是意见,但第一种方式对我来说更具可读性。虽然它不像第二个被混淆了。
-
@Gray:实际上它只是由于命名错误而被混淆了。第一个是对象,第二个是查询,但两者具有相同的名称。如果您将其命名为
var itemsWithId10 = myCollection.Where(q => q.Id == 10);,那么if(itemsWithId10.Any())会更清晰。