Heim >Backend-Entwicklung >C++ >Wie kann ich eine Liste mit LINQ in C#in Unterverminderung einer bestimmten Größe aufteilen?
In C#begegnen wir häufig Situationen, in denen die Liste in kleinere Stücke oder Kinderlisten unterteilt werden müssen. Eine Möglichkeit, dieses Ziel zu erreichen, besteht darin, die leistungsstarke Linq (Sprachintegrationsabfrage) in C#zu erweitern.
Betrachten wir die von Ihnen angegebenen Beispiele. Sie haben ein und möchten ein
oder erstellen, damit jede generierte Liste eine bestimmte Anzahl kontinuierlicher Elemente (z. B. 3) in der ursprünglichen Liste enthält. List<T>
List
Um dieses Problem mit LINQ zu lösen, können Sie den folgenden Code verwenden: List<T>[]
Dieser Code gruppiert zuerst die Elemente in der Quellliste basierend auf dem Ergebnis des
-Ergebnisses. Dies wird sie in<code class="language-csharp">public static List<List<T>> Split<T>(IList<T> source, int chunkSize) { return source .Select((x, i) => new { Index = i, Value = x }) .GroupBy(x => x.Index / chunkSize) .Select(x => x.Select(v => v.Value).ToList()) .ToList(); }</code>Blöcke gruppieren. Anschließend verwenden wir den -Operator, um jede Gruppe in die Wertliste zu konvertieren und den
-Operator zu erstellen, um eine Liste einer Liste zu erstellen. chunkSize
chunkSize
Wenn Sie beispielsweise eine ursprüngliche Liste Select
und ToList
als 3 haben, ist die produzierte Sub -Liste
, [a, g, e, w, p, s, q, f, x, y, i, m, c]
, chunkSize
, [a, g, e]
. Die Größe der generierten Liste wird durch die Anzahl der Elemente in der ursprünglichen Liste und die in der Gruppenoperation angegebene Größe bestimmt. Im Allgemeinen bietet diese LINQ -basierte Lösung eine effektive Methode. Der Code wurde geändert, um die Parameter zu akzeptieren, um ihn häufiger zu machen. [w, p, s]
Das obige ist der detaillierte Inhalt vonWie kann ich eine Liste mit LINQ in C#in Unterverminderung einer bestimmten Größe aufteilen?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!