我正在使用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);
}
那么这些值就永远不会以正确的顺序出现,而是以几乎随机的顺序出现,这与普通的Dictionary相似。有人知道为什么吗?我想念/做错了什么吗?
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
谢谢
詹姆士
最佳答案
SortedDictionary
对键而不是值进行排序。
如果您执行以下操作
foreach(var item in dic)
{
Console.WriteLine(item.Key + "-" + item.Value);
}
您会看到它按键排序输出:
1-String 3
70-String 4
100-String 1
1113-String 2