2016-07-29 70 views
1

我有一個方法的輸出,每個結果提供兩個關鍵的數據片段。例如:20160503nzdusdC#按特定值排序的數據結構

我該如何將它存儲在字典中,並對任何一個進行排序? 我希望能夠對鍵或值進行排序,但不能過去添加數據! 有更好的數據結構嗎?

以前我試圖簡單地調用Add()

但有一個ArgumentException有消息,An item with the same key has already been added.

Dictionary<string, string> missingDays = new Dictionary<string, string>(); 

// Some logic 
missingDays.Add(formattedDate, fxPair); // Exception here 

foreach (var missingDay in missingDays) 
       { 
        Console.WriteLine(missingDay); 
       } 

回答

3

字典必須具有唯一鍵值。在這種情況下,formattedDate變量被多次分配相同的值,這會在第二次嘗試將條目添加到具有相同formattedDate值的詞典時導致例外。

可以使用列表中的Tuple<string, string>List<Tuple<string, string>>)來存儲值,然後使用LINQ方法OrderBy()對列表進行排序。

var missingDays = new List<Tuple<string, string>>(); 

missingDays.Add(Tuple.Create("exampleFormattedDate", "exampleFxPair")); 

foreach (var missingDay in missingDays.OrderBy(md => md.Item1)) 
{ 
    Console.WriteLine(missingDay); 
}