我有一个包含唯一数字列表的字典。我遇到的问题是它不会进入正确的顺序。我试图按升序排序字典。字典中的值如下:
我必须尝试订购的代码是
foreach (var value in groupedDict.OrderBy(x => x.Key))
{
当我在调试中运行它时,我得到的顺序是 10,100,110,Ect而不是你在字典中的值可以看到的应该是10,15,20。
任何人都知道如何让我这样做以提升和我做错了。
答案 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)))
{