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
};