【发布时间】:2019-10-24 21:27:19
【问题描述】:
我有一个集合(集合有点大 > 100K 自定义复杂项目,并且经常添加新项目)。 我只需要对它进行一次排序 - 在显示它之前。 为了简化我的问题,假设我有一个需要排序的整数集合:
private static void Main(string[] args)
{
var collection = new Collection<int> { 1, 2, 3, 4, 5, 6, 7, 8, 9, 0 };
var list = new List<int> { 1, 2, 3, 4, 5, 6, 7, 8, 9, 0 };
var array = new [] { 1, 2, 3, 4, 5, 6, 7, 8, 9, 0 };
// How to apply Array.Sort to Collection<T> ?
list.Sort(); //ok
Array.Sort(array); //ok
}
基本上list.Sort(); 使用Array.Sort<T>(this._items, index, count, comparer);
如何对我的Collection<T> 进行排序?
(不复制)
【问题讨论】:
-
我无法理解你不能使用 list.sort() 的原因
-
@AntonioGanci 因为
Collection<T>不是List<T>,而Collection<T>没有Sort()? -
@AntonioGanci 原因是 Microsoft 规则 CA 1002(警告 CA1002 更改 'IMyInterface.MyList' 中的 'List
' 以使用 Collection 、ReadOnlyCollection 或 KeyedCollection ) -
@isxaker 我会禁止这条规则,老实说......这样的事情仅适用于你是一个图书馆作者,他正在运送图书馆以供其他人使用伙计们,即便如此还是有问题的;如果您是 app 开发人员(即您的代码仅用于您自己的系统或您的同事可以轻松调整的系统):忘记它
-
忽略“规则”。
标签: c# arrays .net list collections