为什么以下代码不会对我的列表进行排序?
List<string> lst = new List<string>() { "bac", "abc", "cab" };
lst.OrderBy(p => p.Substring(0));
Run Code Online (Sandbox Code Playgroud)
sca*_*man 25
因为OrderBy返回IOrderedEnumerable,你应该这样做:
lst = lst.OrderBy(p => p.Substring(0)).ToList();
Run Code Online (Sandbox Code Playgroud)
你也可以做以下事情:
lst.Sort();
Run Code Online (Sandbox Code Playgroud)
Ste*_*ung 16
您将LINQ操作与更改其应用的变量的方法(即对象的实例方法)混淆.
LINQ操作(即.OrderBy)返回一个查询.它不会对您的对象执行操作(即lst).
您需要将该查询的结果分配回您的变量:
lst = lst.OrderBy(p => p).ToList();
Run Code Online (Sandbox Code Playgroud)
在LINQ lingo.