Bir liste varsa kontrol ETMENÄ°Z ile boÅŸ
Bu ne "" (hesaba hız ve okunabilirlik hem alma) yolu eğer bir liste boş olup olmadığını belirlemek için? en iyi Liste türü IEnumerable<T>
ve Sayısı özelliği yok bile.
Şimdi bu arasında kadar savurma buradayım:
if (myList.Count() == 0) { ... }
ve bu:
if (!myList.Any()) { ... }
Benim tahminim ikinci seçenek daha hızlı, beri geri gelir bir sonucu olarak gördüğü ilk madde, oysa ikinci seçenek (bir IEnumerable) ihtiyacımız ziyaret her öğe için geri sayım.
Bu söyleniyor, ikinci seçenek olarak okunabilir mi görünüyor? Hangisini tercih edersiniz? Yoksa boş bir liste için test etmek için daha iyi bir yol düşünebiliyor musun?
Edit@lassevk cevabı en mantıklı gibi görünüyor, bu gibi mümkünse önbelleğe sayımı kullanmak için çalışma zamanı kontrol biraz ile birleştiğinde:
public static bool IsEmpty<T>(this IEnumerable<T> list)
{
if (list is ICollection<T>) return ((ICollection<T>)list).Count == 0;
return !list.Any();
}
CEVAP
Bunu yapmak için:
public static Boolean IsEmpty<T>(this IEnumerable<T> source)
{
if (source == null)
return true; // or throw an exception
return !source.Any();
}
EditSadece kullanmayı unutmayın .Sayma yöntemi temel kaynağı aslında hızlı Sayım özelliği varsa hızlı olacak. Geçerli bir optimizasyon yukarıda birkaç temel türünü tespit eder ve sadece kullanmak olacaktır .O, bir özelliği saymak .() Herhangi bir yaklaşım, ama sonra geri dön .Eğer garantisi yapılabilir. ()
EÄŸer bir liste varsa kontrol etmenin e...
DeÄŸeri varsa arama nesneleri Etmeniz k...
Eğer belirli bir anahtarı varsa kontro...
Nasıl bir Java dosyası varsa kontrol e...
Nasıl olursa NSDictionary veya bir NSM...