Advertisement
Guest User

Untitled

a guest
Aug 19th, 2011
116
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C# 1.29 KB | None | 0 0
  1. public class row
  2. {
  3.         public row(string color, int volume, int weight)
  4.         {
  5.             Color = color;
  6.         Volume = volume;
  7.         Weight = weight;
  8.     }
  9.    
  10.         public string Color {get;set;}
  11.     public int Volume {get;set;}
  12.     public int Weight {get;set;}
  13. }
  14.  
  15. void Main()
  16. {
  17.     var list = new List<row>
  18.     {
  19.             new row("Blue", 1, 1),
  20.         new row("Blue", 2, 1),
  21.         new row("Blue", 2, 2),
  22.         new row("Green", 2, 3),
  23.         new row("Green", 2, 4),
  24.         new row("Green", 3, 3),
  25.         new row("Red", 3, 1),
  26.         new row("Red", 3, 2),
  27.         new row("Red", 4, 2)
  28.     };
  29.     GetSortedList(list, new []{"Volume", "Weight", "Color"}).Dump();
  30. }
  31.  
  32. // Define other methods and classes here
  33. public List<row> GetSortedList(List<row> list, string[] sortOrder)
  34. {
  35.     IOrderedEnumerable<row> result = null;
  36.  
  37.  
  38.     for(int i=0;i<sortOrder.Length;++i)
  39.     {
  40.         switch(sortOrder[i])
  41.         {
  42.             case "Color":
  43.                 if(i==0)
  44.                     result = list.OrderBy(x => x.Color);
  45.                 else
  46.                     result = result.ThenBy(x => x.Color);
  47.                 break;
  48.             case "Volume":
  49.                 if(i==0)
  50.                     result = list.OrderBy(x => x.Volume);
  51.                 else
  52.                     result = result.ThenBy(x => x.Volume);
  53.                 break;
  54.             case "Weight":
  55.                 if(i==0)
  56.                     result = list.OrderBy(x => x.Weight);
  57.                 else
  58.                     result = result.ThenBy(x => x.Weight);
  59.                 break;
  60.         }
  61.     }    
  62.  
  63.     return result.ToList();
  64. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement