Dans ma candidature, j'ai une liste d'éléments dont j'ai besoin pour trier par prix et définir un indice de rang / de position pour chaque élément. J'ai besoin de stocker le rang car le prix peut changer ensuite. Pour le moment, je le fais comme ceci:
var sortedlistKFZ = from res in listKFZ orderby res.Price select res; if (sortedlistKFZ.Any()) { int rankPosition = 1; foreach (Result kfz in sortedlistKFZ) { kfz.MesaAdvertNumber = rankPosition; rankPosition++; } }
3 Réponses :
Le plus simple serait
(from res in listKFZ orderby res.Price select res).ToList().ForEach(...)
Ce travail pourrait-il fonctionner?
Ce sera, à l'exception d'un petit détail ... La numérotation démarre à partir de 2. Vous avez besoin d'une augmentation d'incrémentement sur Postfix (RankPosition ++) ou une valeur initiale de la sectionPosition à 0.
Vous pouvez le faire à l'aide du mot clé code> code>. Cela devrait fonctionner ...
Int32[] numbers = new Int32[] { 3, 6, 4, 7, 2, 8, 9, 1, 2, 9, 4 }; int count = 1; var ranked = from n in numbers let x = count++ select new { Rank = x, Number = n };