[英]How to apply Array.Sort to Collection<T>?
我有一个集合(集合中有大于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>
排序? (无复制)
没有方便的方法可以做到这一点。 即使对于子类( protected
), Collection<T>
也不提供对内部缓冲区的原始访问。 否则,您将无法进行干净的就地排序。
您可以在基础.Items
( protected
)上手动实现排序,但是这需要大量工作并且效率很低。
什么,你也可以做的是:
但是,我个人可能会说“如果需要排序,请使用List<T>
”-这样可以节省很多工作。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.