gpt4 book ai didi

c# - 获得最多数组的Linq解决方案

转载 作者:行者123 更新时间:2023-11-30 14:10:33 25 4
gpt4 key购买 nike

拥有一个对象,该对象具有作为其几何边界的 double[6] 数组属性:

 "xmin: " << bounds[0]  
"xmax: " << bounds[1]
"ymin: " << bounds[2]
"ymax: " << bounds[3]
"zmin: " << bounds[4]
"zmax: " << bounds[5]

同时迭代多个对象并获取此属性我想存储所有迭代对象的xmax,ymax,zmax的最大值

完成这项任务的最佳方法是什么,我有这个想法,但是我想使用 Linq

    double[] max = new double[6];
double xmax = 0.0;
double ymax = 0.0;
double zmax = 0.0;
foreach (var o in myObject)
{
max = o.bounds;
if (xmax < max[1])
{
xmax = max[1];
}
if (ymax < max[3])
{
ymax = max[3];
}
if (zmax < max[5])
{
zmax = max[5];
}
}

最佳答案

您可以使用 Enumerable.Max 来做到这一点方法:

double xmax = myObject.Select(x => x.bounds[1]).Max();
double ymax = myObject.Select(x => x.bounds[3]).Max();
double zmax = myObject.Select(x => x.bounds[5]).Max();

请注意,此解决方案不必要地枚举了集合三次。您的 foreach 循环仅枚举了一次集合,如果我是您,我会继续使用简单循环并使用 LINQ 仅在有帮助时。当然,决定权在你。如果你的收藏不是特别庞大,你可以更喜欢更具可读性的方法。

关于c# - 获得最多数组的Linq解决方案,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23529714/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com