我正在使用SortedDictionary,其中鍵是整數,值是字符串。C#SortedDictionary產生異常結果
SortedDictionary<int,string> dic = new SortedDictionary<int,string>();
現在說我添加值喜歡
dic.Add(100,"String 1");
dic.Add(1113,"String 2");
dic.Add(1,"String 3");
dic.Add(70,"String 4");
,然後做一個foreach循環就像
foreach(string item in dic.Values) {
Console.WriteLine(item);
}
那麼值永遠不會按正確的順序走出來,他們在問世幾乎是隨機的順序,這是一個正常的詞典類似的行爲。任何人有任何想法爲什麼?我錯過/做錯了什麼?
PS:當我說這是出來以隨機順序我的意思是關鍵,爲了不值,所以它出來像1113,70,1,100
看來我可能比簡單的問題,但它不應該有所作爲,有很多嵌套涉及,最終字典實際上是另一個字典的孩子,這是另一個字典的孩子!
SortedDictionary<String, SortedDictionary<String, SortedDictionary<int, SortedDictionary<String, String>>>>()
我正在通過循環的字典是
SortedDictionary<int, SortedDictionary<String, String>>
這裏是爲要求的循環:
foreach (SortedDictionary<String, String> cDic in openTrades.Values)
{
String cTimestamp = convertTimestamp(cDic["open"]);
if (!closeTrades.ContainsKey(cDic["key"]) && barArray.ContainsKey(cDic["pair"]))
{
foreach (SortedDictionary<String, String> bDic in barArray[cDic["pair"]][cDic["frame"]].Values)
{
//This is the relative Loop
}
}
}
barArray是我們的首要SortedDictionary(這個問題的主題) openTrades是另一個SortedDictionary
謝謝 James
如果通過「隨機」,你的意思是你得到了'String3,String4,String1,String2',那麼你就會得到預期的行爲。 – 2011-05-31 20:30:10
你有沒有研究過這個問題?如果是這樣,很高興知道! – Benjol 2012-02-15 09:57:00