J’ai un tableau et je veux le scinder en deux:
Maintenant: [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
New_1: [0, 2, 4, 6, 8]
New_2: [1, 3, 5, 7, 9]
Alors, prenez le premier élément et sautez le suivant. Ça a l’air facile mais comment puis-je le faire avec C #?
Merci beaucoup
Vous pouvez utiliser linq , Enumerable.Where et obtenir le tableau avec des éléments ayant des index pairs et impairs .
var New_1 = arr.Where((c,i) => i % 2 == 0).ToArray(); var New_2 = arr.Where((c,i) => i % 2 != 0).ToArray();
Vous pouvez obtenir l’index de l’élément de collection et appliquer la condition pour vérifier si index est pair ou impair et obtenir les tableaux en fonction.
Enumerable.Where, méthode (IEnumerable, Func) filtre une séquence de valeurs en fonction d’un prédicat. L’index de chaque élément est utilisé dans la logique de la fonction de prédicat. Le premier argument de prédicat représente l’élément à tester. Le deuxième argument représente l’index de base zéro de l’élément dans la source, msdn
Que diriez-vous de quelque chose comme
int[] arr = new int[] {0, 1, 2, 3, 4, 5, 6, 7, 8, 9}; int[] arr1 = arr.Where((x, i) => i % 2 == 0).ToArray(); int[] arr2 = arr.Where((x, i) => i % 2 == 1).ToArray();
int[] arr = new int[] { 0, 1, 2, 3, 4, 5, 6, 7, 8, 9 }; int i = 0; List twoArr = arr.GroupBy(x => i++ % 2).Select(g => g.ToArray()).ToList();