Utilisez LINQ pour diviser la collection en sous-collections
Diviser une collection en parties plus petites est une tâche de programmation courante. En utilisant LINQ (Language Integrated Query), vous pouvez y parvenir avec une méthode d'extension simple.
Divisez l'ensemble en N parties
Laméthode d'extension Split
reçoit en entrée une collection et le nombre de pièces souhaité et renvoie un IEnumerable<IEnumerable>
représentant la sous-collection. Cet algorithme divise les éléments en parties en fonction du reste lorsque l'index actuel est divisé par le nombre de parties.
Mise en œuvre :
<code class="language-csharp">static class LinqExtensions { public static IEnumerable<IEnumerable<T>> Split<T>(this IEnumerable<T> list, int parts) { int i = 0; var splits = from item in list group item by i++ % parts into part select part.AsEnumerable(); return splits; } }</code>
Utilisation :
La méthodeSplit
peut être utilisée sur n'importe quelle collection IEnumerable
. Par exemple, pour diviser une liste de nombres en 3 parties :
<code class="language-csharp">var numbers = new List<int> { 1, 2, 3, 4, 5, 6, 7, 8, 9 }; var parts = numbers.Split(3);</code>
Cela renverra un IEnumerable
contenant 3 IEnumerable
collections, chacune contenant un sous-ensemble de la liste d'origine :
<code>部分1:{ 1, 4, 7 } 部分2:{ 2, 5, 8 } 部分3:{ 3, 6, 9 }</code>
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!