我有對象的排序集合(它可以是排序列表或SortedDictionary,我將用它主要是用於讀取這麼加的表現並不重要)。我如何獲得第i個值?獲得第i個值或SortedDictionary
因此,例如,當我收集數字1,2,3,4,5時,我想要中位數(在這個例子中是3),我該怎麼做?
我有對象的排序集合(它可以是排序列表或SortedDictionary,我將用它主要是用於讀取這麼加的表現並不重要)。我如何獲得第i個值?獲得第i個值或SortedDictionary
因此,例如,當我收集數字1,2,3,4,5時,我想要中位數(在這個例子中是3),我該怎麼做?
嘗試類似這樣:
list.Values [list.Count/2];
請注意,如果Count爲偶數,則真正的中位數將平均中間的兩個數字。
您可以使用如下代碼
list.Values[index]
的排序列表。
,最簡單的有SortedDictonary方式將是使用的ElementAt()方法:
dict.ElementAt(index)
然而,這是比在列表中的情況下慢。
無論哪種情況,您都需要檢查您的計數。如果奇數,則採用index =(list.length-1)/ 2)。如果是偶數,則採用index1 = list.length/2 AND index2 = list.length/2 - 1並對這些值求平均值。
如果您需要通過索引在SortedDictionary中多次獲取元素,則性能會很糟糕。使用SortedDictionary作爲輸入創建一個新的SortedList並訪問SortedList。運行速度快很多倍。
您可以通過使用下面的語法在特定位置提取值:
sortedDictionaryName.ElementAt(index);
如果你想在一個期望的索引中提取元素的鍵或值:
sortedDictionaryName.ElementAt(index).Key //For only Key
sortedDictionaryName.ElementAt(index).Value //For only Value
歡呼聲中,這項工作僅用於SortedList。有沒有辦法做到這一點SortedDictionary? – Grzenio 2008-10-24 16:24:40