linq効率的なセグメンテーションリスト
を使用します LINQは、さまざまな条件に応じてリストをサブリストに分割する機能を含む、.NETアプリケーションにシンプルで強力なデータ処理方法を提供します。
次の問題を考慮してください。
があります。オブジェクトのいくつかのサブリストに分割する必要があり、各子リストのサイズはインデックスによって決定されます。たとえば、元のリストには次の要素が含まれています。
List<T>
T
あなたが取得したいリストは
<code>[a, g, e, w, p, s, q, f, x, y, i, m, c]</code>
サブリストのサイズは、関数パラメーターとして指定できます。
Linqを使用したソリューションは次のとおりです<code>[a, g, e], [w, p, s], [q, f, x], [y, i, m], [c]</code>
このコードは、次の手順を実行します:
インデックスグループによると、
<code class="language-csharp">public static List<List<T>> Split<T>(IList<T> source, int sublistSize) { return source .Select((x, i) => new { Index = i, Value = x }) .GroupBy(x => x.Index / sublistSize) .Select(x => x.Select(v => v.Value).ToList()) .ToList(); }</code>:
メソッドは、要素インデックスに従ってソースリストの要素に支払われ、各グループは異なるサブリストを表します。
パラメーター制御サブリンサイズ。GroupBy
リストリストに変換されたsublistSize
:Select
結果はであり、それぞれに元のリストの指定された要素が含まれており、プロジェクトのインデックスに従って分割されます。 以上がLINQは、リストを指定されたサイズのサブリストに効率的に分割するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。