Mic*_*ael 0 .net c# ienumerable
我有以下代码示例:
List<int> list = new List<int>();
list.Add(1);
list.Add(2);
list.Add(3);
list.Add(4);
list.Add(5);
list.Add(6);
list.Add(7);
list.OrderByDescending(n=>n).Reverse();
Run Code Online (Sandbox Code Playgroud)
但是当我使用它时:
list.OrderByDescending(n=>n).Reverse();
Run Code Online (Sandbox Code Playgroud)
我没有得到想要的结果.
如果不是上面的陈述,我使用这个:
list.Reverse();
Run Code Online (Sandbox Code Playgroud)
我得到了想要的结果.
知道为什么我没有得到想要的结果使用第一个声明?
我相信我在理解扩展时遗漏了一些东西.
先感谢您.
该list.Reverse()方法就地反转列表,因此您的原始文件list已更改.
该.OrderByDescending()扩展方法会产生一个新的列表(或相当的IEnumerable<T>),并留下您的原始list完整.
编辑
为两个排序顺序获取两个列表:
List<int> upList = list.OrderBy(n => n).ToList();
List<int> downList = list.OrderByDescending(n => n).ToList();
Run Code Online (Sandbox Code Playgroud)