字典OrderBy问题

时间:2014-01-02 11:51:57

标签: c# linux

我有一个包含唯一数字列表的字典。我遇到的问题是它不会进入正确的顺序。我试图按升序排序字典。字典中的值如下:

enter image description here

我必须尝试订购的代码是

  foreach (var value in groupedDict.OrderBy(x => x.Key))
        {

当我在调试中运行它时,我得到的顺序是 10,100,110,Ect而不是你在字典中的值可以看到的应该是10,15,20。

任何人都知道如何让我这样做以提升和我做错了。

3 个答案:

答案 0 :(得分:3)

由于您的密钥是字符串,并且您想要数字排序,请尝试使用此

foreach (var value in groupedDict.OrderBy(x => int.Parse(x.Key)))

目前它正在进行字符串排序(这会给你带来意想不到的结果)。

答案 1 :(得分:0)

将字符串解析为int?

foreach (var value in groupedDict.OrderBy(x => int.Parse(x.Key)))

答案 2 :(得分:0)

由于您的Key是一个字符串,因此字典按字符排序,而不是按数值排序。 排序时应该转换为int。

foreach (var value in groupedDict.OrderBy(x => Convert.ToInt32(x.Key)))
    {