2016-04-11 2 views
-1

を使用して、最高の健康と敵の配列から敵を取得します。私は敵オブジェクトが備わっていLINQ

public class Enemy { public float maximumHealth, currentHealth; } 

そして私は、このオブジェクトの配列を持っている:

public Enemy[] enemies; 

とASを配列には次の項目が含まれています:

Index maximumHealth currentHealth 
0  100   77 
1  100   37 
2  100   59 
3  100   99 
4  100   11 

Linqを使用して現在の最高の健康(99)の敵を見つける方法を教えてください。

+1

コードにはどのような問題がありますか? –

+1

あなたは少なくとも試しましたか、私たちがあなたのためにそれをやろうとしていますか?解決策は簡単で、マナーの問題です。 – Toxantron

+1

質問を投稿する際に、なぜhttps://www.bing.com/search?q=c%23+max+by+property+linqのような基本的な検索をOPで行うことができなかったのか、それがどのように説明したのか説明を追加することを検討してください動作しません/ OPのための良い努力を追加します。 –

答えて

2

2つのオプション。効率の低い一つだけ関心のがあるときには、まず、MoreLinqへの参照を追加し、...

より最適
enemies.OrderByDescending(e => e.currentHealth).First(); 

かを、すべての要素をソートする必要があるため:

以上である
enemies.MaxBy(e => e.currentHealth); 

並べ替えが必要ないので効率的です... MaxByは、コレクションのスキャンを行い、最良の候補を新しいものに置き換えます。

2

これは可能です。

降順でarrayをソートし、最初の要素を探します。

enemies.OrderByDescending(s=>s.currentHealth).First() 
関連する問題