我有敌人对象:
public class Enemy { public float maximumHealth, currentHealth; }
我有一个这个对象的数组:
public Enemy[] enemies;
作为示例,数组中包含以下项目:
Index maximumHealth currentHealth
0 100 77
1 100 37
2 100 59
3 100 99
4 100 11
如何使用Linq找到当前健康状况最高的敌人(99)?
答案 0 :(得分:2)
两个选项。效率较低,因为它需要首先排序所有元素,只有感兴趣的元素...
enemies.OrderByDescending(e => e.currentHealth).First();
或更优化的是,添加对MoreLinq的引用,然后:
enemies.MaxBy(e => e.currentHealth);
效率更高,因为不需要排序...... MaxBy
只扫描集合,如果评分更高,则用新的候选项替换最佳候选项。
答案 1 :(得分:2)
你可以这样做。
按降序排序array
,然后查找第一个元素。
enemies.OrderByDescending(s=>s.currentHealth).First()