LINQ内のAny
メソッドがコレクション全体を反復処理するか、成功した最初の反復が発生したときにtrueを返しますか?LINQの任意の方法が効率的ですか?
答えて
Any
メソッドは必要な要素の最小数だけを反復します。すぐにそれが一致する要素を見つけると、それはすぐに
を返します。これは、
public static bool Any<T>(this IEnumerable<T> enumerable, Func<T, bool> predicate) {
foreach (var cur in enumerable) {
if (predicate(cur)) {
return true;
}
}
return false;
}
最悪の場合(noneまたは最後に一致)で、それはすべての要素を訪問すると、次のように大まかにが実装です。最高の場合(最初のマッチング)、それは訪問するだけです
後者 - ReSharperでコードを見て、体験版をダウンロードした場合に確認できます。
Anyが効率的かどうかについては、たとえば、代わりにCountプロパティを使用できます。しかし、間違いなく意図をうまく表現しています。
IEnumerable
それは本当ですが、私はまだ実現されていない配列で作業しています。実際、私は 'Enumerable'を補うためのメソッドの汎用ライブラリを書いています。だから私は 'IEnumerable
まだ実現されていないシーケンスで作業している場合は、それらが繰り返し可能かどうかを確認してください。 'Any'はシーケンスを実行するためにシーケンスの要素を読み込まなければならないので、反復不可能なシーケンスに適用するときは注意が必要です。そうしないと、最初の要素が失われます。私は実際にそれが助けになる場合にこれを見ていた:http://stackoverflow.com/questions/9194908/safely-checking-non-repeatable-ienumerables-forempty –
Anyは、述部との一致が成功するとすぐにtrueを返します。存在しない場合は、コレクション全体で反復されます。
- 1. 効率的な方法が
- 2. データフレームを効率的に任意の長さのリストに変換する方法はありますか?
- 3. 任意の子フレームからトップウィンドウにコールバック関数を渡す最も効率的な方法は?
- 4. Linq-to-Entities/Linq-to-SQLでは、1つのデータポーリング方法が効率的ですか?
- 5. もっとエレガントで効率的な方法ですか? (XML/Linq/Read&Write)
- 6. 効率的な方法(パイソン)
- 7. 効率的な方法は
- 8. Celeryはローカルシステムで効率的ですが、Pythonのマルチプロセッシングは効率的ですか?
- 9. エレガントかつ効率的な方法
- 10. PHPの効率的な比較方法
- 11. 最も効率的な方法のハンドラ
- 12. 効率的なヒートマップの補間方法
- 13. 効率的なcsvファイルのアップロード方法
- 14. より効率的なLINQクエリ
- 15. Linq to sql効率的なソリューション
- 16. 任意の排他的論理和の組み合わせから生成できない1つの数値を取得する効率的な方法
- 17. 一意のキーを作成する - 最も効率的な方法
- 18. LIMITの最も効率的な方法はJOINですか?
- 19. これはparseIntの効率的な方法ですか?
- 20. LINQ Count()until、これはより効率的ですか?
- 21. 2つのクエリの方が効率的ですか?
- 22. WPFでデータバインディングが効率的ですか?
- 23. linq複数の値の任意の句
- 24. ポイントが任意の数のボックスに含まれているかどうかを判断する最も効率的な方法
- 25. 任意のerbファイルで任意のビューヘルパーのメソッドにアクセスする方法は?
- 26. ボタンのためのより効率的な方法を書くより効率的な方法
- 27. $( 'selector')。last()や$( 'selector:last')の方が効率的ですか?
- 28. String.SplitよりもString.Substringの方が効率的ですか?
- 29. 複数のif文を使う方が効率的ですか?
- 30. LINQからXMLへの最も効率的な使用
私はそれが事実であったことを期待していました、ありがとう。私はもともと 'Count()> 0'を使用していて、非常に高価な操作であることに気付きました。私は 'Any'を再発見してどこにでも使っています:) – Jordan