LINQ .Any VS .Exists - 違いは何ですか? 質問する

LINQ .Any VS .Exists - 違いは何ですか? 質問する

コレクションで LINQ を使用する場合、次のコード行の違いは何ですか?

if(!coll.Any(i => i.Value))

そして

if(!coll.Exists(i => i.Value))

逆アセンブルすると.Exists、コードがないように見えます。なぜでしょうか?

ベストアンサー1

リスト.存在する(オブジェクトメソッド - MSDN)

List(T) に指定された述語で定義された条件に一致する要素が含まれているかどうかを判断します。

これは .NET 2.0 から存在しており、LINQ より前のものです。これは Predicateデリゲートで使用することを目的としていますが、ラムダ式は下位互換性があります。また、List だけがこれを持っています (IList にもありません)。


IEnumerable.Any(拡張メソッド - MSDN)

シーケンスの任意の要素が条件を満たしているかどうかを判断します。

これは .NET 3.5 の新機能であり、引数として Func(TSource, bool) を使用するため、ラムダ式および LINQ で使用することを目的としています。

動作の点では、これらは同一です。

おすすめ記事