[解決済み] .Any() vs .Count() > 0のどちらのメソッドがより良いパフォーマンスを発揮しますか?
質問
で
System.Linq
名前空間を拡張することができます。
IEnumerableの
を持つようにします。
Any()
と
カウント()
拡張メソッド
.
最近、あるコレクションに1つ以上のアイテムが含まれていることを確認したい場合、そのコレクションに含まれるアイテムを確認するために
.Any()
拡張メソッドの代わりに
.Count() > 0
拡張メソッドは
.Count()
拡張メソッドは、すべての項目を繰り返し処理しなければなりません。
次に、いくつかのコレクションは
プロパティ
(拡張メソッドではない)である
Count
または
Length
. の代わりに、それらを使用する方が良いでしょうか?
.Any()
または
.Count()
?
はい / いいえ?
解決方法は?
を持つものから始める場合、その
.Length
または
.Count
など
ICollection<T>
,
IList<T>
,
List<T>
など) を経由する必要がないため、これが最も速い選択肢となります。
GetEnumerator()
/
MoveNext()
/
Dispose()
が必要とするシーケンスです。
Any()
をチェックし、空でない
IEnumerable<T>
の配列になります。
だけの場合
IEnumerable<T>
であれば
Any()
意志
概ね
というのは、1つの反復処理だけを見ればよいからです。しかし、LINQ-to-Objectsの実装である
Count()
をチェックします。
ICollection<T>
(を使用)。
.Count
を最適化するために使用します。
直接
リストやコレクションと大きな違いはないでしょう。なぜ、一般的でない
ICollection
...
もちろん、LINQを使ってフィルタリングなどをしている場合(
Where
など)、イテレータ・ブロックベースのシーケンスになるので、この
ICollection<T>
の最適化は無意味です。
一般に
IEnumerable<T>
にこだわる。
Any()
;-p
関連
-
[解決済み] 16進数値0x00は無効な文字です。
-
[解決済み] Microsoft.NETFrameworkとMicrosoft.NETFramework64の違いは何ですか?
-
[解決済み] 24:00:00 を超える値を持つ .Net Timespan を格納するための正しい SQL タイプは何ですか?
-
[解決済み] JavaScriptでオブジェクトのキー/プロパティの数を効率的にカウントする方法
-
[解決済み] なぜList<T>を継承しないのですか?
-
[解決済み] リフレクションを使ってジェネリックメソッドを呼び出すにはどうしたらいいですか?
-
[解決済み] メソッドを廃止または非推奨としてマークする方法は?
-
[解決済み] LINQクエリでToList()とToArray()のどちらを呼び出すのが良いですか?
-
[解決済み] WCF - メッセージサイズのクォータを増加させる方法
-
[解決済み】Count(*)とCount(1)の比較 - SQL Server
最新
-
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 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み】この動詞型ではcontent-bodyを送信できない
-
[解決済み】XAMLにSystem.Stringを埋め込む
-
[解決済み] "ItemsSourceを使用する前に、Itemsコレクションを空にする必要があります。"
-
[解決済み] フレームワークとアーキテクチャの違いは何ですか?[クローズド]
-
[解決済み] データテーブルがすでに別のデータセットに属している
-
[解決済み] csilogfileは何のためにあるのですか?
-
[解決済み] .net の OOM 問題を解決する必要があります。
-
[解決済み] app.configが作成されるタイミングとapp.exe.configが作成されるタイミング、その違いとは?
-
[解決済み] Entity FrameworkとLINQ to SQLの比較
-
[解決済み] Microsoft.ACE.OLEDB.12.0' プロバイダがローカルマシンに登録されていません。