嗨,

我怎样才能得到List<Tuple<double, double>> tupleList的最小值和最大值?

我知道我能在List<double> onlyList分钟内拿到最低分

onlyList.Max();
onlyList.Min();

但是List和Tuple的关系如何呢? 我应该把元组解析成一个新的列表,然后调用"Max()/Min()"吗?

例如,如果我有这个

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));

我想比较每个元组中的第一个双精度值(从10到15),得到10和15作为最小和最大值,然后再比较每个元组中的第二个双精度值(从0到5),分别得到0和5作为最小值和最大值.

感谢你们的真知灼见!^^,

推荐答案

如果您希望元组列表中的最小值/最大值为any,则可以执行以下操作:

onlyList.Min(t => t.Item1 < t.Item2 ? t.Item1 : t.Item2);
onlyList.Max(t => t.Item1 > t.Item2 ? t.Item1 : t.Item2);

如果需要第一项或第二项的最大值,请使用

onlyList.Max(t => t.Item1);

同样,Min个人也是如此.

还有其他方法--创建一个所有条目的"扁平"列表(例如,SelectMany个),然后调用max,等等.使用对你来说最有意义的任何东西.除非您执行多次迭代列表的操作,否则我预计不会有显著的性能差异.

Csharp相关问答推荐

在ASP.NET中为数据注释 Select 合适的语言

MongoDB实体框架核心:表达必须可写

AutoMapper -如何为两个不同的用例设置单个映射?

属性getter和setter之间的空性不匹配?

是否可以使用EF—Core进行临时部分更新?

使用Audit.EntityFramework,我如何将外键的值设置为相关实体上的属性?

XUNIT是否使用测试数据的源生成器?

Linux Docker上的.NET6在某个时间抛出后,在加密操作期间发生System.Security.Cryptography.CryptographicException:错误

为什么我可以用硬编码的集合而不是变量来设置没有setter的IList属性的值?

Polly重试URL复制值

升级后发出SWITCH语句

基于C#方法的EF核心过滤查询(缓冲与流)

将C#类导入到PowerShell

Xamarin.Forms-如何创建可 Select 的显示alert 或弹出窗口?

如何在.NET Core 8中自定义标识用户模型

身份验证中间件如何处理多个方案

自定义ConsoleForMatter中的DI/Http上下文

异步等待,如何在Windows窗体中使用它们?

在Blazor中动态隐藏MUD文本

System.Net.Http.HttpClient返回错误&Quot;Err:缺少UA30&Quot;