は、私は、次のコードを参照してください。LINQ ToListがここで使用されないのはなぜですか? <code>source</code>が<code>IEnumerable<T></code>ある</p> <pre><code>using(var iterator = source.GetEnumerator()) {...} </code></pre> <p>:
上記を変換してsource
をList<T>
に変換し、それを反復する利点は何ですか? List<T>
への変換
は、私は、次のコードを参照してください。LINQ ToListがここで使用されないのはなぜですか? <code>source</code>が<code>IEnumerable<T></code>ある</p> <pre><code>using(var iterator = source.GetEnumerator()) {...} </code></pre> <p>:
上記を変換してsource
をList<T>
に変換し、それを反復する利点は何ですか? List<T>
への変換
リストにそれを変換すると可算一回反復し、新しいList<>
に(偶数または値型の値)すべての参照をコピーします。次に、リストを繰り返します。つまり、2回繰り返すことになります。
列挙のソースとしてIEnumerable<>
を使用すると、シーケンスに対して1回だけ反復処理されます。
投稿者が投稿した小さなスコープから、詳細をforeach
のままにするのではなく、列挙子を使用して手動で反復を行うことにした理由は分かりません。
は、あなたが2倍のデータを反復処理するだろうもちろんのこと、変換を実行するために追加メモリやCPUサイクルを必要とするであろう。
イテレーション前にList<T>
に変換する必要はありません。 foreach
は、IEnumerable<T>
を実装するものすべてを反復処理できます。
'ToList'を使うと、ソースを2回繰り返します。 – Eser