Saya telah mendiskusikan hal ini dengan kolega, dan kami tidak tahu apa gunanya .Any
untuk setiap pemberian List<>
, di C #.
Anda dapat memeriksa validitas elemen dalam array seperti pernyataan berikut:
if (MyList.Any()){ ...} //Returns true or false
Yang persis sama dengan
if (MyList.Count() != 0) { ... }
dan jauh lebih umum, mudah dibaca dan jelas tentang maksud if
pernyataan itu.
Pada akhirnya, kami terjebak dengan pemikiran ini:
.Any()
dapat digunakan, akan bekerja dengan baik, tetapi kurang jelas tentang maksud programmer, dan jika itu tidak boleh digunakan.
Tetapi kami merasa ini tidak mungkin benar; kita pasti kehilangan sesuatu.
Apakah kita?
Any()
kurang jelas: Any()
tampak lebih jelas bagi saya, terutama dengan kondisi lambda. Menerjemahkan kode ke Bahasa Inggris di kepalaku, if(MyList.Count(o => o > 10) > 0)
menjadi "Apakah jumlah item lebih besar dari 10 lebih dari 0?" sedangkan if(MyList.Any(o => o > 10))
menjadi "Apakah ada item lebih besar dari 10?"
Any
is Exists
. Nama Linq mungkin lebih terinspirasi oleh Haskell dan Python yang juga memiliki fungsi apa saja.