2017-09-24 144 views
0

我有一個Vector 3列表,我想要做的是找到具有最高X值的Vector3,如果有多個Vector3與最高的XI想要將Vector 3與最低的Y和最高的X.我希望該方法返回該Vector3的Z.做這個的最好方式是什麼?按特定值對Vector3的列表進行排序

對不起,我對編碼很陌生,希望我已經解釋好我的問題了。提前致謝!

+0

像這樣'vector.OrderBy(V => VX).ToArray ();' – styx

回答

0

您可以使用LINQ輕鬆地做到這一點:

if (vectors.Count == 0) 
{ 
    //Some appropriate action 
} 
else 
{ 
    return vectors.OrderyBy(v => v.X) 
        .ThenByDescending(v => v.Y) 
        .Last() 
        .Z 
} 

請注意,你的問題是下指定:

  • 如果該列表是空的,會發生什麼?
  • 如果超過一個載體的最大值爲X和最小值爲Y,會發生什麼情況?
+0

在我的情況的名單是不可能的爲空,因爲我已經手動定義它。另外這是不可能的(在我的情況下)有兩個相同的y值。 – Max

0

找到了一個好辦法做到這一點:

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; 
相關問題