コレクションに指定された述語の一致がないかどうかを効果的にチェックする LINQ 拡張メソッドが不足していると感じる状況に遭遇しました。Any
とがありますがAll
、たとえば次のコードを使用するとします。
if (Objects.All(u => u.Distance <= 0))
コレクション内のすべてのオブジェクトが 0 ヤード以下離れている場合、これは true を返します。
if (Objects.Any(u => u.Distance <= 0))
これは、コレクション内に自分から 0 ヤード以内のオブジェクトが少なくとも 1 つある場合に true を返します。
これまでのところ、これらの方法はどちらも理にかなっており、構文も理にかなっています。ここで、距離が 0 以下のオブジェクトが存在しないかどうかを確認したい場合は、All
メソッド内の述語を>= 0
代わりに<= 0
or を呼び出す必要!All()
があり、場合によってはコードが非常に読みにくくなります。
Collection.None(u => u.Distance <= 0)
コレクション内に 0 ヤード以下のオブジェクトがないかどうかを効果的にチェックする方法はありませんか? それは実際の問題というよりも構文糖衣ですが、私はそれが欠けていると感じています。