[解決済み] LINQリング。巨大なコレクションに対するAny()とContains()の比較
2022-05-14 19:14:49
質問
巨大なオブジェクトのコレクションがある場合、次のようなパフォーマンスの違いはあるでしょうか?
myCollection.Contains(myElement)
myCollection.Any(currentElement => currentElement == myElement)
どのように解決するのですか?
Contains()
はインスタンスメソッドであり、その性能はコレクション自体に大きく依存します。例えば
Contains()
の上に
List
は O(n) であり、一方
Contains()
の上で
HashSet
は O(1) です。
Any()
は拡張メソッドであり、単純にコレクションを通過し、すべてのオブジェクトにデリゲートを適用します。そのため、計算量はO(n)となります。
Any()
は、デリゲートを渡すことができるので、より柔軟です。
Contains()
はオブジェクトしか受け取れません。
関連
-
[解決済み] callとapplyの違いは何ですか?
-
[解決済み] SQLiteのINSERT/per-secondのパフォーマンスを向上させる
-
[解決済み] 複数の例外を一度にキャッチする?
-
[解決済み] 要素ごとの加算は、結合ループよりも分離ループの方がはるかに高速なのはなぜですか?
-
[解決済み] AddTransient、AddScoped、AddSingleton サービスの相違点
-
[解決済み] SelectとSelectManyの違い
-
[解決済み] IEnumerable<T> と IQueryable<T> を比較する。
-
[解決済み] LINQ .Any VS .Exists - 違いは何ですか?
-
[解決済み】大文字・小文字を区別しない「Contains(string)
-
[解決済み] Intel CPU の _mm_popcnt_u64 で、32 ビットのループカウンターを 64 ビットに置き換えると、パフォーマンスが著しく低下します。
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み】C#で四捨五入する方法
-
[解決済み] DBNullから他の型にオブジェクトをキャストすることができない
-
[解決済み】C# - パスに不正な文字がある場合
-
[解決済み】Unity 「関連するスクリプトを読み込むことができません」「Win32Exception: システムは指定されたファイルを見つけることができません"
-
[解決済み】ファイルへの読み書きの際に共有違反のIOExceptionが発生する C#
-
[解決済み】WSACancelBlockingCallの例外について
-
[解決済み] ...基礎となる接続は閉じられました。予期しないエラーが受信で発生しました
-
[解決済み】インデックスが範囲外でした。コレクションパラメータname:indexのサイズより小さく、非負でなければなりません。
-
[解決済み】別のスレッドがこのオブジェクトを所有しているため、呼び出し側のスレッドはこのオブジェクトにアクセスできない
-
[解決済み】WebResource.axdとは何ですか?