Unity3d c#在Vector3 (xyz)列表中找到x的最大值

本文关键字:最大值 列表 Vector3 xyz Unity3d | 更新日期: 2023-09-27 18:06:05

我如何在Vector3(包含xyz)列表中检索x的最大值?谢谢你!

Unity3d c#在Vector3 (xyz)列表中找到x的最大值

你可以使用LINQ:

找到x最大的向量
float xMax = vectors.Max(v => v.x);
Vector3 result = vectors.First(v => v.x == xMax);

这要求:

using System.Linq;

或者,由于上面的方法在源集合上迭代两次,您可以添加自己的IEnumerable<T>扩展来满足您的需要。

有一个叫做MoreLinq的库,它已经有了一些我想要的东西:MaxBy扩展。

这将使解决方案成为一个简单的一行代码(对源代码进行一次迭代):

Vector3 result = vectors.MaxBy(v => v.x);

应该可以了。

var vectors = new List<Vector3>();
/* add data to list */
// Select biggest X.
var maxX = vectors.Max(v => v.x);

LINQ语句Max(v => v.x)求Vector3列表中所有X的值,并返回它找到的最大值