c# - 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[]]”
解决方案
首先,您的排序不正确,您应该将其解析为string
,int
否则您将执行不是您想要的字符串比较。
var result = l.OrderBy(f => int.Parse(f[1])).ToList();
然后你可以得到这样的结果:
MessageBox.Show(string.Join("\n",result.SelectMany(e => e)));
推荐阅读
- java - OpenLiberty 18.0.0.2 是否带有像 Derby DB 或 H2 这样的嵌入式数据库?
- java - org.springframework.beans.factory.BeanCreationException:创建名为“userResource”的bean时出错
- c# - 使用 Revit API 提取建筑面积
- c - 通过引入数字直到按下 0 来计算算术和几何平均值
- mariadb - 错误:mysql_intstall_db 时权限被拒绝
- c++ - 封装 std::map 以允许迭代,但不能直接访问密钥?
- html - 基于 HTML 选择输入的 SQL 查询
- docker - Docker build mfp image with error
- r - R使用第三个表重命名列
- c++ - 语言分析的二叉树实现 - 子节点:不起作用