c# - Ranking items in a list with LINQ -
i trying figure out way rank items in list, , hold results in object or list. know orderby method, don't know how go creating corresponding rank number each item.
for example:
list<int> numbers = new list<int>(); numbers.add(650); numbers.add(150); numbers.add(500); numbers.add(200); and store results either low high or high low here:
public class numberrank { public int number {get; set;} public int rank {get; set;} public numberrank(int number) { number = number; rank = ????????; } } any solutions through linq?
this should it:
public class numberrank { public int number {get; set;} public int rank {get; set;} public numberrank(int number, int rank) { number = number; rank = rank; } } class test { static void main() { list<int> numbers = new list<int>(); numbers.add(650); numbers.add(150); numbers.add(500); numbers.add(200); list<numberrank> numberranks = numbers.orderbydescending(n => n).select((n, i) => new numberrank(n, + 1)).tolist(); // check worked foreach(numberrank nr in numberranks) console.writeline("{0} : {1}", nr.rank, nr.number); console.readkey(); } } to rank in ascending order (i.e. lowest number first), replace orderbydescending orderby.
Comments
Post a Comment