【发布时间】:2011-05-31 20:26:13
【问题描述】:
我正在使用一个 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 是我们的 Primary SortedDictionary(这个问题的主题) openTrades 是另一个 SortedDictionary
谢谢 詹姆斯
【问题讨论】:
-
如果“随机”表示您获得了
String3, String4, String1, String2,那么您将获得预期的行为。 -
你有没有弄清楚这里的问题是什么?如果是这样,很高兴知道!
标签: c# sorteddictionary