2016-07-29 9 views
1

結果ごとに2つの重要なデータを提供するメソッドの出力があります。 例:20160503およびnzdusdC#特定の値に対してソートするデータ構造

これを辞書に保存するにはどうすればいいですか? キーまたは値に対してソートできるようにしたいが、データを追加することはできない! 他のデータ構造が適していますか?

以前私は単に

Add()を呼び出してみましたが、メッセージとArgumentExceptionAn 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変数に同じ値が2回以上割り当てられているため、2回目に同じformattedDateの値を持つエントリを辞書に追加しようとすると例外が発生します。

リスト内で(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); 
} 
関連する問題