我正在考虑维护小固定有限数量对象(几十个)的集合的有效方法,这将非常频繁地更改(每秒至少几次每秒几十次)。 是否有一个现有的排序集合,它具有更新现有插入项目的关键(排名)的功能?Efficent C#对固定数量的可变对象进行排序收集
让我们考虑以下项目的定义:
public class Item
{
public decimal Ranking { get; private set; }
public IIdentity Identity { get; private set; }
public IOtherInfo OtherInfo { get; private set; }
}
我要的那些项目(通常更新排名,有时前面的排名无效 - 这可以通过设置排名为0或无限是,例如简化)的输入流。 Identity值只有很少的变化(它可以很快地转换为索引0到N),OtherInfo可以改变(但它可以很容易地存储在单独的查找数组中),最重要的是, 。 我正在考虑SortedCollection,但是无论何时排名变化(很常见),都需要删除和阅读项目,这听起来效率很低。
任何建议集合,允许更新的项目和它的采取在收集将不胜感激。
散列集呢? – 2013-04-22 16:45:46
哈希集未被排序。 – 2013-04-22 16:48:38
鉴于如果物品的数量非常小(几十件物品是无物),我非常怀疑它会很重要。即使是很差的数据结构也不会对小数据集产生任何问题。最重要的是,每秒更新内容几十次*不是很多。这还需要数百毫秒才能完成更新。这应该只需要几十*纳秒*。即使采用平庸的实现方式,您也可以每秒更新数百次。 – Servy 2013-04-22 16:50:19