You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在C#中获取List<Tuple<double, double>>的最大值与最小值?

从List<Tuple<double, double>>获取元组元素的最值

你不需要额外解析为新列表,可以直接通过LINQ的Max()和Min()方法结合lambda表达式指定要比较的元组元素,这是最简洁高效的方式:

直接获取最值(推荐)

针对元组的第一个元素(Item1)和第二个元素(Item2),分别调用带选择器的最值方法即可:

// 初始化列表
var tupleList = new List<Tuple<double, double>>();
tupleList.Add(new Tuple<double, double>(11, 3));
tupleList.Add(new Tuple<double, double>(10, 5));
tupleList.Add(new Tuple<double, double>(12, 2));
tupleList.Add(new Tuple<double, double>(13, 0));
tupleList.Add(new Tuple<double, double>(15, 4));
tupleList.Add(new Tuple<double, double>(14, 1));

// 获取第一个元素的最值
double minItem1 = tupleList.Min(t => t.Item1); // 结果:10
double maxItem1 = tupleList.Max(t => t.Item1); // 结果:15

// 获取第二个元素的最值
double minItem2 = tupleList.Min(t => t.Item2); // 结果:0
double maxItem2 = tupleList.Max(t => t.Item2); // 结果:5

解析为新列表后获取最值(可选)

如果你确实需要先将元组元素提取为单独的列表,也可以这么做,但会额外占用内存创建新列表,适合需要复用该列表的场景:

// 提取所有第一个元素到新列表
var item1List = tupleList.Select(t => t.Item1).ToList();
double minItem1 = item1List.Min();
double maxItem1 = item1List.Max();

// 提取所有第二个元素到新列表
var item2List = tupleList.Select(t => t.Item2).ToList();
double minItem2 = item2List.Min();
double maxItem2 = item2List.Max();

两种方法都能得到你需要的结果,优先推荐第一种直接调用带选择器的最值方法,代码更简洁且性能更优。

内容的提问来源于stack exchange,提问作者Kuroyuki Hikari

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.17 11:10:38