2011-01-10 27 views
7

Aşağıdaki gibi bir LINQ sorgusu kullanıyorum.LINQ - Sıra hiçbir eleman içermiyor

object.collection.where(t => t.id.Equals("2")).First(); 

"Sıra hiçbir öğe içermiyor" hatasını alıyorum. Sonuç hiçbir öğe içermediğinde sonuç neden hata veriyor? Hiçbir sonuç bulunmadığında null döndürmez mi? SQL kullanırken ne olur.

cevap

5
object.collection.where(t => t.id.Equals("2")).FirstOrDefault(); 
16

Tasarlanan şekilde çalışıyor. İlk() yöntemi, en az bir satırın döndüğü bilinirse çağrılmalıdır. Bu durumda, FirstOrDefault() öğesini çağırın.

+1

İki İlk varyasyonun nedeni, hata ayıklamayı kolaylaştırmak için belirli istisnalar elde etmektir. Belirsiz bir boş başvuru istisnası yerine, daha spesifik bir "sıra hiçbir öğe içermez" alırsınız. –