Bạn sẽ không cần phải thực hiện điều đó bằng séc vì bạn truy vấn chỉ trả về các đối tượng trong đó contantName là Stackoverflow
. Khi bạn sử dụng FirstOrDefault
nó trả null
nếu không có đối tượng đã được tìm thấy, do đó bạn có thể làm
if(contact == null)
do something
Bạn biết đó là một loại tài liệu tham khảo nếu Liên là một lớp học vì vậy nó có giá trị mặc định sẽ là null. Tuy nhiên, bạn có thể kiểm tra đó là loại mặc định của bất kỳ đối tượng nào (tham chiếu hoặc giá trị) bằng cách sử dụng default
.
if(contact == default(Contact))
do something
Như đã đề cập trong các ý kiến, bạn có thể có thể làm cho mã của bạn hiệu quả hơn bằng cách sử dụng sự quá tải của FirstOrDefault
mà phải mất một vị ngữ.
FirstOrDefault(m => m.contactName == "Stackoverflow")
Bạn cũng có thể thay đổi giá trị mặc định trả lại nếu chương trình của bạn cần phải làm việc với một cái gì đó khác hơn là một null
hoặc 0
. Ví dụ
Contact defaultContact = new Contact();
defaultContact.ContactName = "StackExchange";
Contact contact = dbo.contact.Where(m=>m.contactName == "Stackoverflow")
.DefaultIfEmpty(defaultContact).First();
trên sẽ trả lại đối tượng defaultContact
nếu không có đối tượng khác đã được tìm thấy (thay vì trả lại null). Nếu bạn làm điều này thì bạn không cần phải kiểm tra null
hoặc default(T)
vì bạn biết bạn có đối tượng Contact
.
Một lưu ý nữa - nó tốt hơn để sử dụng 'FirstOrDefault (m => m.contactName == "Stackoverflow")' –
+1, bổ sung để trả lời :) – keyboardP
Điều này chỉ hoạt động nếu 'contact' là kiểu tham chiếu, sử dụng' default() 'là tốt hơn. –