如何在C#中对List进行排序

Leo*_* Vo 13 .net c#

我有一节课:

public class MyObject
{
public string Name;
public int Age;
}
Run Code Online (Sandbox Code Playgroud)

我有一个Myobject对象列表:

Name Age
ABC 12
BBC 14
ABC 11
Run Code Online (Sandbox Code Playgroud)

如何使用条件对此列表进行排序:首先排序名称,然后排序年龄.使用此列表,排序后的结果:

Name Age
ABC 11
ABC 12
BBC 14
Run Code Online (Sandbox Code Playgroud)

Mar*_*ers 14

使用LINQ的两种不同方式:

1)使用OrderByThenBy:

l = l.OrderBy(x => x.Name).ThenBy(x => x.Age).ToList();
Run Code Online (Sandbox Code Playgroud)

2)使用查询语法:

l = (from x in l
     orderby x.Name, x.Age
     select x).ToList();
Run Code Online (Sandbox Code Playgroud)


Dar*_*rov 10

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);
        }
    }
}
Run Code Online (Sandbox Code Playgroud)