您不需要执行等于检查,因为您的查询仅返回 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对象。