Bazı IEnumberable
ürün koleksiyonum var. Koleksiyonda belirli bir nesneyi bulmak için .Single()
kullanıyorum.LINQ Single() 0 veya çoklu öğeler için istisna
Single()
kullanmayı tercih ediyorum çünkü yalnızca belirli bir öğe bulunmalıdır. Bununla birlikte, eğer mevcut değilse, o zaman onu oluşturup koleksiyona eklemem gerekir.
Sorunum, Single()
yüklemesiyle eşleşen bir öğe yoksa veya birden fazla öğe varsa, aynı hatayı atar. Fikrim, denemenin içine Single()
çağrıyı koymak ve istisnayı yakalamak, öğeyi eklemek ve devam etmek oldu. Ancak, her iki senaryo da InvalidOperationException
'u attığından, öğelerinden veya birden çok öğeden kaynaklanıp kaynaklanmadığını nasıl anlarım?
First()
'u kullanabileceğimi biliyorum, ancak bu yalnızca bir tane olması gerektiği fikrini zorlamıyor (ekstra çalışma yapmadan).
Ben de Single()
çağrısından önce Count()
kullanabilirsiniz, ama bu sadece sensin istedikleriniz Single()
Öğe türü için varsayılan değeri döndürür. Referans türleri için null değil, ancak null olmayan null değer türleri için değil ... –
... ve null işaretini zincirlemek istiyorsanız, bu gibi bir şey kullanabilirsiniz http://napoleonss.wordpress.com/2011/12/ 20/my-null kontrol /. – napoleonss
@JonSkeet üzerinde varsayılanlar için geçerlidir. Yine de bir referans türü hakkında konuştuğunu düşündüm. –