Aufteilen eines Arrays mit LINQ

8

Ich habe eine Kollektion, die so eindimensional ist:

%Vor%

Ich möchte diese Sammlung in einer zweidimensionalen Sammlung wie folgt konvertieren:

%Vor%

Grundsätzlich möchte ich gruppieren oder teilen, wenn Sie möchten, das Array in Gruppen von 'n' Mitgliedern

Ich kann es mit einer foreach -Anweisung machen, aber ich lerne gerade LINQ, anstatt alle Elemente manuell zu durchlaufen und ein neues Array manuell zu erstellen, würde ich gerne die LINQ-Funktionen verwenden (falls zutreffend)

Gibt es eine LINQ-Funktion, die mir hilft, dies zu erreichen?

Ich dachte in den GroupBy oder SelectMany Ich weiß nicht, ob sie mir helfen werden, aber sie könnten

Jede Hilfe wird es wirklich schätzen =): **

    
Rosana Huerta 31.05.2012, 03:15
quelle

6 Antworten

14

Sie können nach dem Index, geteilt durch die Stapelgröße, gruppieren:

%Vor%     
dasblinkenlight 31.05.2012, 03:31
quelle
5

Verwenden Sie MoreLinq .Batch

%Vor%

Beispiel

%Vor%     
Tilak 31.05.2012 03:19
quelle
3

Sie möchten Take() und Skip() . Mit diesen Methoden können Sie IEnumerable teilen. Dann können Sie Concat() verwenden, um sie wieder zusammen zu schlagen.

    
Jeremy Holovacs 31.05.2012 03:18
quelle
2

Das folgende Beispiel teilt ein Array in Gruppen von jeweils 4 Elementen auf.

%Vor%     
Carolyn Van Slyck 31.05.2012 03:42
quelle
2

Es ist kein reines LINQ, aber es soll mit ihm verwendet werden:

%Vor%

Es kann von Ihrem Code wie folgt verwendet werden:

%Vor%     
Dmitry Lobanov 31.05.2012 03:19
quelle
0

Es ist so einfach wie:

%Vor%     
ShloEmi 13.09.2016 13:43
quelle

Tags und Links