私のリストが非常に大きいので、forまたはforeachループを使わずに、私のリストから要素またはそのリストを取り出したいと思います。アルゴリズムの複雑さを見ると、2つのループを相互に使用するのは良い考えではありません。ループなしでリストから要素を取得する
答えて
ルーピングなしでリストから1つの要素を取得できる場合は、リストから1つの要素を得ることができるLINQ(firstOrdefault、Single、SingleOrdefault)関数を使用できます。どこでToListを使ってcast.allの最後にこれらの関数をラムダ式のパラメータとして取ります。 また、私は右だ理由を参照するには、これらのリンクをチェック:
- http://www.anujvarma.com/replacing-foreach-loops-with-linq-expressionsa-performance-gain/
- http://www.anujvarma.com/linq-versus-loopingperformance/
- http://code-fight.club/fight/7/linq-vs-foreach
を限り、あなたは大きなサイズのコレクションを持っているように、LINQは正しい選択です。
Linqはループ(内部)を使用します – fubo
はい、通常のループより時間がかかりません。それを試し、実行時間を計算して結果を確認してください。 –
LINQは確かに行く方法です。読みやすくメンテナンス可能なコード。少し遅くなります(無関係のケースの99%)。 –
答えは、どの要素を求めるかによって決まります。事実は、あなたが探したい要素のインデックスを持っていれば、ListはO(1)の複雑さになります。それ以外の場合は、常にO(n)の複雑さ(LINQかどうか)を持ちます。
あなたのコレクションの多くの要素を抽出し、それらの上にループを使用する必要がある場合は、LINQは、簡単に(あなたのコレクションのすべての要素に)一つだけのループでそれを行うことができます:
foreach (var element in myCollection.Where(myCondition))
O(n)より複雑な要素を探したい場合はHashSet<T>
とDictionary<TKey, TValue>
を見てください。
しかし、あなたの質問は、より具体的な回答を得るほど正確ではありません。
- 1. リストから要素を取得する
- 2. リストから要素を取得する
- 3. リストのリストから要素を取得
- 4. SML:リストから要素を取得
- 5. 取得リスト要素
- 6. R:df要素をループしながらインデックス名を取得
- 7. リストから要素をスキップして取得します
- 8. オブジェクトのリストからすべての要素を取得する
- 9. リストから素数を取得する
- 10. スキーム:ネストされたリストから要素を取得する
- 11. XSOMパーサから要素リストを取得する方法
- 12. リストから最後の要素のみを取得する
- 13. インスペクタの要素リストを取得する
- 14. Pythonのリスト要素を取得する
- 15. リストperlの要素を取得する
- 16. プロパティでScalaの配列(リスト)から要素を取得
- 17. Python:リストをループしながらリスト内の要素を削除する
- 18. jQueryでリストのインデックス要素を取得
- 19. Sortableリストからすべての要素属性を取得
- 20. ArrayCollectionから要素を取得する
- 21. ループするときにリストから要素を削除する
- 22. リストからランダムな要素
- 23. ハッシュセットからランダムな要素を取得しますか?
- 24. のpython、JSON要素のリストから値の一覧を取得
- 25. 要素のセットから隠し要素を取得
- 26. MySQL - リンクテーブルから要素を取得しますが、それらの要素のみを取得します。
- 27. 2番目のリストにない要素を取得する
- 28. 大きなリストの要素の値を取得する
- 29. リストの要素を合計するループ
- 30. 子要素のデータを親要素の子要素から取得する
どのように要素を決定しますか?インデックス、条件? – fubo
HashTableが役立つかもしれません。 – zypro
確かに私はオブジェクトのリストを持っています、時々私はプロパティ上の条件を必要とし、私はidを使用する一つの要素を取得します。 –