我有一个Vector 3列表,我想要做的是找到具有最高X值的Vector3,如果有多个Vector3与最高的XI想要将Vector 3与最低的Y和最高的X.我希望该方法返回该Vector3的Z.做这个的最好方式是什么?按特定值对Vector3的列表进行排序
对不起,我对编码很陌生,希望我已经解释好我的问题了。提前致谢!
我有一个Vector 3列表,我想要做的是找到具有最高X值的Vector3,如果有多个Vector3与最高的XI想要将Vector 3与最低的Y和最高的X.我希望该方法返回该Vector3的Z.做这个的最好方式是什么?按特定值对Vector3的列表进行排序
对不起,我对编码很陌生,希望我已经解释好我的问题了。提前致谢!
您可以使用LINQ轻松地做到这一点:
if (vectors.Count == 0)
{
//Some appropriate action
}
else
{
return vectors.OrderyBy(v => v.X)
.ThenByDescending(v => v.Y)
.Last()
.Z
}
请注意,你的问题是下指定:
X
和最小值为Y
,会发生什么情况?在我的情况的名单是不可能的为空,因为我已经手动定义它。另外这是不可能的(在我的情况下)有两个相同的y值。 – Max
找到了一个好办法做到这一点:
Vector3[] arr;
Vector3 res = arr[0];
for (int i = 1; i < arr.length; i++){
if (arr[i].x > res.x || (arr[i].x == res.x && arr[i].y < res.y)){
res = arr[i];
}
}
return res.z;
像这样'vector.OrderBy(V => VX).ToArray();' –
styx