如何用LINQ获取各列最小宽度值的Tuple列表?
按列分组取最小Width的LINQ完整实现
你需要实现的是按column字段分组,提取每组中最小的width值,最终生成Tuple<int, double>类型的列表。
你当前的代码已经完成了分组步骤,但Select部分的逻辑有误——分组后的变量是分组集合对象,不是单个title元素,需要对每组单独计算最小Width。
完整代码实现
var result = titles.GroupBy(t => t.Column) .Select(g => Tuple.Create(g.Key, g.Min(t => t.Width))) .ToList();
代码说明
GroupBy(t => t.Column):将所有title对象按Column值分组,每个分组g包含同一列的所有元素g.Key:当前分组对应的列号(即你需要的int类型column值)g.Min(t => t.Width):计算当前分组内所有元素的Width最小值(double类型)Tuple.Create:创建Tuple的简洁写法,等价于new Tuple<int, double>(...)ToList():将结果转换为List<Tuple<int, double>>类型,匹配你的需求
验证结果
用你提供的示例数据运行后,结果会是:
Tuple<0, 100>Tuple<3, 85>
完全符合预期输出。
内容的提问来源于stack exchange,提问作者Tommer
相关产品推荐
相关产品推荐

