我正在考慮維護小固定有限數量對象(幾十個)的集合的有效方法,這將非常頻繁地更改(每秒至少幾次每秒幾十次)。 是否有一個現有的排序集合,它具有更新現有插入項目的關鍵(排名)的功能?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