2013-10-02 29 views
1

我有一個字典與鍵作爲一些整數值,這是一個數組的索引和值字段中的字符串。我需要的鍵之間的差異之和相同的字典如何獲取字典對象中的鍵之間的差異總和C#

Dictionary<int, string> foo = new Dictionary<int, string>() 
{ 
    {0,"text1"}, 
    {2,"text2"}, 
    {6,"text3"}, 
    {8,"text4"} 
}; 

輸出

  • (8-6)= 2
  • (6-2)= 4
  • (2-0)= 2

總:2 + 4 + 2 = 8

+1

不應該只是總是最大密鑰 - 最小密鑰? – Ralf

+0

減法不可交換,順序很重要。字典不是有序的集合。 –

+0

@HansPassant我的字典對象將總是像上面那樣排序。所以不用擔心 – Satheesh

回答

2

應該是最大密鑰和最小密鑰之間的差異。

int total = foo.Keys.Max() - foo.Keys.Min(); 
+0

+1我忘了密鑰將是'Enumerable ' –

3

因此在彙總計算所有其他鍵值將兩者相加和相減,你只需要最大值和最小值的位置:

var total = foo.Max(kvp => kvp.Key) - foo.Min(kvp => kvp.Key); 
相關問題