J'ai Liste de int qui se compose de la valeur 0,0,0,1,2,3,4,0,0 maintenant je divise en 3 listes comme cette liste A consiste 0 , 0,0 et la liste B consiste 1,2,3,4 et la liste C consiste 0,0.Je sais comment diviser en utilisant si et pour, mais comment puis-je le faire en utilisant linq. format habituel je dois diviser en commençant des zéros et au milieu quelques valeurs et en dernier quelques zéros je dois diviser ces premiers zéros dans une liste, les valeurs moyennes dans une liste et les zéros de fin dans une autre liste comme je le dis dans l'exemple ci-dessus en utilisant linq et j'aime aussi prendre l'indice qui valorise.comment diviser la liste en utilisant linq
2
A
Répondre
7
premier.
myList.TakeWhile(x => x==0)
deuxième.
myList.SkipWhile(x => x==0).TakeWhile(x => x!= 0)
troisième.
myList.SkipWhile(x => x==0).SkipWhile(x => x!= 0)
-1
Vous pouvez utiliser les méthodes Skip et Take exposées par Linq to Objects pour récupérer certains éléments d'une séquence.
var myList = new int[] {0,0,0,1,2,3,4,0,0};
var list1 = myList.Take(3);
var list2 = myList.Skip(3).Take(4);
var list3 = myList.Skip(7);
-1
Vous pouvez utiliser Take(n)
ou Skip(n)
dans LINQ
List<int> list = new List<int>();
list.Add(0);
list.Add(0);
list.Add(0);
list.Add(1);
list.Add(2);
list.Add(3);
list.Add(4);
list.Add(0);
list.Add(0);
var listOne = list.Take(3);
var listSecond = list.Skip(3).Take(4);
var listThird = list.Skip(7);
0
Si vous voulez diviser par séquence zéro puis essayez ce code:
static void Main(string[] argv)
{
var list = new[] { 0, 0, 0, 1, 2, 3, 4, 0, 0 };
int groupIndex = 0;
var result = list.Select(
(e, i) =>
{
if (i == 0)
{
return new {val = e, group = groupIndex};
}
else
{
groupIndex =
(e != 0 && list[i - 1] == 0) || (e == 0 && list[i - 1] != 0)
?
groupIndex + 1
: groupIndex;
return new {val = e, group = groupIndex};
}
}
).GroupBy(e => e.group).Select(e => e.Select(o => o.val).ToList()).ToList();
foreach (var item in result)
{
foreach (var val in item)
{
Console.Write(val + ";");
}
Console.WriteLine();
Console.WriteLine("Count:" + item.Count);
Console.WriteLine();
}
Console.ReadLine();
}
sortie est:
0;0;0;
Count:3
1;2;3;4;
Count:4
0;0;
Count:2
Il n'est vraiment pas clair quel est le critère de scission de votre question. Si j'ai donné une mauvaise réponse, alors expliquez votre question.
Questions connexes
- 1. Diviser la liste en plusieurs colonnes
- 2. Comment diviser une chaîne en une liste?
- 3. comment diviser la liste en partie d'une liste par rapport à l'instance dans la liste
- 4. Diviser la page PDF en utilisant C#
- 5. Comment diviser l'image en utilisant Javascript + CSS?
- 6. Supprimer les doublons dans la liste en utilisant linq
- 7. Comment diviser la date, l'heure en utilisant javascript?
- 8. Comment diviser une liste en groupes et stocker les indices?
- 9. Diviser la liste des noms en dictionnaire alphabétique, en Python
- 10. En condition utilisant LINQ
- 11. Comment compter les éléments d'une liste dans une liste dans une liste en utilisant LINQ?
- 12. Diviser/diviser en fonction de la valeur
- 13. Python: diviser la liste dans le tableau
- 14. Diviser la liste Python en plusieurs listes basées sur l'index
- 15. Retour liste avec le nombre maximum en utilisant Linq
- 16. Comment comparer la liste <String> à la table DB en utilisant LINQ
- 17. comment récupérer la valeur de plus d'une liste à la fois en utilisant linQ?
- 18. En utilisant LINQ, sélectionnez la liste des objets dans une autre liste d'objets
- 19. Comment diviser une liste avec plusieurs délimiteurs?
- 20. créer une liste de catégories en utilisant linq
- 21. Diviser une liste par date distincte
- 22. Diviser un texte en utilisant javascript
- 23. Comment diviser la chaîne en C#?
- 24. Comment diviser un contenu de colonne en utilisant SSIS?
- 25. Comment diviser un mot d'une phrase en utilisant JQuery
- 26. En utilisant Python diviser pour raccorder une variable ensemble
- 27. Aidez-moi à diviser la chaîne en utilisant RegExp
- 28. C# Comment diviser (A: B = C) * en utilisant regex?
- 29. Différence de deux Liste avec différents types en utilisant LINQ
- 30. Comment diviser un document HTML en utilisant Nokogiri?
Vous n'avez pas dit * comment * vous voulez diviser les données. Pourquoi devrait-il être divisé de cette façon plutôt que, disons, {0,0,0,1}, {2,3,4,0}, {0}? –
S'il vous plaît nous donner plus de détails sur les critères utilisés pour diviser. Est-ce juste des séquences séparées de zéros et de non-zéros? – LukeH
Je ne pense pas que vous pouvez – Aliostad