我有一個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