I have a class:
public class MyObject
{
public string Name;
public int Age;
}
I have a List of Myobject objects:
Name Age
ABC 12
BBC 14
ABC 11
How to sort this list with condition: sort Name first & sort Age later. With this list, the result after sorting:
Name Age
ABC 11
ABC 12
BBC 14
Two different ways using LINQ:
1) Using OrderBy
and ThenBy
:
l = l.OrderBy(x => x.Name).ThenBy(x => x.Age).ToList();
2) Using the query syntax:
l = (from x in l
orderby x.Name, x.Age
select x).ToList();
class Program
{
static void Main(string[] args)
{
var list = new List<MyObject>(new[]
{
new MyObject { Name = "ABC", Age = 12 },
new MyObject { Name = "BBC", Age = 14 },
new MyObject { Name = "ABC", Age = 11 },
});
var sortedList = from element in list
orderby element.Name
orderby element.Age
select element;
foreach (var item in sortedList)
{
Console.WriteLine("{0} {1}", item.Name, item.Age);
}
}
}
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With