私は同僚とこれについて議論してきましたが、C#で、.Any
特定のの使用が何であるかを理解できませんでしたList<>
。
次のステートメントのように、配列内の要素の有効性を確認できます。
if (MyList.Any()){ ...} //Returns true or false
これはまったく同じです
if (MyList.Count() != 0) { ... }
if
声明の意図についてより一般的で読みやすく明確です。
最終的に、私たちはこの考えに固執しました:
.Any()
使用することもできますが、同様に機能しますが、プログラマの意図についてはあまり明確ではなく、その場合は使用しないでください。
しかし、これは正しくないように感じます。私たちは何かを見逃しているに違いありません。
私たちは?
Any()
はあまり明確ではあり Any()
ません。特にラムダ条件に関しては、私にとってはより明確に思えます。私の頭の中でコードを英語に翻訳するif(MyList.Count(o => o > 10) > 0)
と、「10を超えるアイテムの数は0を超えていますか?」一方if(MyList.Any(o => o > 10))
なった「がすべての項目は10を超えていますか?」
Any
はExists
です。Linqの名前は、おそらくすべて/すべての機能を備えたHaskellとPythonからより影響を受けています。