首页 > 解决方案 > C# 对列表中的多个数字进行排序。按第二个字符串排序

问题描述

我正在尝试列出事物并尝试这样做

        var l = new List<string[]>() {
                            new string[] { "10945730333", "5"},
                            new string[] { "298543022", "234"},
                            new string[] { "382958320", "35"},
                            };
        var result = l.OrderBy(f => f[1]).ToList();
        MessageBox.Show($"{result}");

我想要它,所以它按从低到高对第二个数字进行排序。使234在底部。当我使用它时,它会出现“System.Collections.Generic.List`1[System.String[]]”

标签: c#

解决方案


首先,您的排序不正确,您应该将其解析为stringint否则您将执行不是您想要的字符串比较。

 var result = l.OrderBy(f => int.Parse(f[1])).ToList();

然后你可以得到这样的结果:

MessageBox.Show(string.Join("\n",result.SelectMany(e => e)));

推荐阅读