Classement des éléments dans une liste avec LINQ
J'essaie de trouver un moyen de classer les éléments dans une liste, et maintenez-les résultats à un objet ou à une autre liste. - Je savoir à propos de la méthode orderby, mais je ne sais pas exactement comment faire pour aller sur la création d'un correspondant numéro de rang pour chaque élément.
Par exemple:
List<int> numbers = new List<int>();
numbers.Add(650);
numbers.Add(150);
numbers.Add(500);
numbers.Add(200);
puis stocker les résultats à partir, soit de bas en haut ou de haut à bas ici:
public class NumberRank
{
public int Number {get; set;}
public int Rank {get; set;}
public NumberRank(int number)
{
Number = number;
Rank = ????????;
}
}
Toutes les solutions grâce à LINQ?
Avez-vous besoin de conserver l'original de l'ordre?
Non, juste un classement de type.
Doit dupliquer nombres ont le même rang?
avez-vous été en mesure d'obtenir une solution? Je vais avoir des problème similaire.
Non, juste un classement de type.
Doit dupliquer nombres ont le même rang?
avez-vous été en mesure d'obtenir une solution? Je vais avoir des problème similaire.
OriginalL'auteur | 2013-04-19
Vous devez vous connecter pour publier un commentaire.
Cela devrait le faire:
À se classer dans l'ordre croissant (c'est à dire plus petit nombre premier), ensuite il suffit de remplacer OrderByDescending par OrderBy.
1 2 3 ..
où il devrait de1 1 3 ..
OriginalL'auteur iamCR
L'un de la surcharge de la Sélectionnez méthode d'extension retour à l'index:
Vous pouvez l'utiliser pour faire de votre rang:
OriginalL'auteur Cyril Gandon
Ou, en C# http://dotnetfiddle.net/3ZGeJ1
OriginalL'auteur smirkingman