Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- public class row
- {
- public row(string color, int volume, int weight)
- {
- Color = color;
- Volume = volume;
- Weight = weight;
- }
- public string Color {get;set;}
- public int Volume {get;set;}
- public int Weight {get;set;}
- }
- void Main()
- {
- var list = new List<row>
- {
- new row("Blue", 1, 1),
- new row("Blue", 2, 1),
- new row("Blue", 2, 2),
- new row("Green", 2, 3),
- new row("Green", 2, 4),
- new row("Green", 3, 3),
- new row("Red", 3, 1),
- new row("Red", 3, 2),
- new row("Red", 4, 2)
- };
- GetSortedList(list, new []{"Volume", "Weight", "Color"}).Dump();
- }
- // Define other methods and classes here
- public List<row> GetSortedList(List<row> list, string[] sortOrder)
- {
- IOrderedEnumerable<row> result = null;
- for(int i=0;i<sortOrder.Length;++i)
- {
- switch(sortOrder[i])
- {
- case "Color":
- if(i==0)
- result = list.OrderBy(x => x.Color);
- else
- result = result.ThenBy(x => x.Color);
- break;
- case "Volume":
- if(i==0)
- result = list.OrderBy(x => x.Volume);
- else
- result = result.ThenBy(x => x.Volume);
- break;
- case "Weight":
- if(i==0)
- result = list.OrderBy(x => x.Weight);
- else
- result = result.ThenBy(x => x.Weight);
- break;
- }
- }
- return result.ToList();
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement