2017-09-24 31 views
0

私はベクトル3のリストを持っています。最も高いX値を持つVector3があれば、最も高いX値を持つVector3を見つけることです。最も低いYと最も高いXを返します。このメソッドは、Vector3のZを返します。これを行う最善の方法は何ですか?特定の値によるVector3のリストの並べ替え

申し訳ありませんが、私は非常にコーディングに新しいです、私は私の問題を十分に説明したことを願っています。前もって感謝します!

+0

何か、私の場合は' – 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

それはリストのために不可能です私はそれを手動で定義しているので、空にする必要があります。また、私の場合、2つの同一のy値があることは不可能です。 – Max

0

:この `vector.OrderBy(V => VX).ToArray ()のような

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; 
関連する問題