作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
在 .NET 中,泛型列表具有接受 IComparer
或 Comparison
的排序函数。我只想对列表的一部分进行排序。希望我可以指定起始索引、要排序的元素数和 lambda 函数。如果您要对整个列表进行排序,看起来您只能使用 lambda 函数来执行此操作。是这样还是我错过了什么?
附加要求:
最佳答案
List<int> mylist = new List<int>() {8,4,6,2,1,5,3,1,7};
List<int> myRange = mylist.GetRange(2,4);
mylist.RemoveRange(2, 4);
mylist.InsertRange(2, myRange.OrderBy(i => i));
mylist.Dump();
编辑:将 Dump
视为在列表上运行 foreach
并将其打印到控制台。
这是在改变原来列表的内容。
EDIT2:看看这段代码是否有帮助
List<int> mylist = new List<int>() ;
for(int i=9999999; i > 0; i--)
{
mylist.Add(i);
}
Console.WriteLine("start " + DateTime.Now.Ticks);
var extract = mylist.Skip(10).Take(1000000).OrderBy(i => i);
int k = 10; // start from (because we skipped from 10 onwards above)
foreach(int item in extract)
{
mylist[k++] = item;
}
Console.WriteLine("done" + DateTime.Now.Ticks);
foreach(int item in mylist)
Console.WriteLine(item);
关于.net - 如何使用 .NET 对庞大列表的一部分进行排序?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2399655/
我是一名优秀的程序员,十分优秀!