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

Popular posts from this blog

node.js - Bad Request - node js ajax post -

Why does Ruby on Rails generate add a blank line to the end of a file? -

keyboard - Smiles and long press feature in Android -