您不需要执行等于检查,因为您的查询仅返回 contantName 为的对象Stackoverflow
。当您使用FirstOrDefault
它时,null
如果没有找到任何对象,则返回,因此您可以这样做
if(contact == null)
do something
如果 Contact 是一个类,你知道它是一个引用类型,所以它的默认值为 null。但是,您可以使用default
.
if(contact == default(Contact))
do something
正如评论中提到的,您可以通过使用FirstOrDefault
带有谓词的重载来提高代码效率。
FirstOrDefault(m => m.contactName == "Stackoverflow")
如果您的程序需要使用除 anull
或之外的其他内容,您还可以更改返回的默认值0
。例如
Contact defaultContact = new Contact();
defaultContact.ContactName = "StackExchange";
Contact contact = dbo.contact.Where(m=>m.contactName == "Stackoverflow")
.DefaultIfEmpty(defaultContact).First();
defaultContact
如果没有找到其他对象,上面将返回该对象(而不是返回 null)。如果你这样做,那么你不需要检查null
或者default(T)
因为你知道你有一个Contact
对象。