关于作业:有施法者(女巫(0)/仙女(1)),他们有法术(智力)。我将它们存储在一个列表中。
我要找到两种类型中最好的。(可以有多个具有相同法术强度的施法者)我想出了这个代码,但是有一个问题。如果法术强度最高的施法者是 1,那么第一个 FindAll 将不会返回任何内容,因为它试图找到类型为 0 且法术强度最高的施法者。如果总法术强度最高的施法者是类型 1,我如何获得包含法术强度最高的类型 0 施法者的列表?
private List<Caster> BestCasters()
{
List<Caster> temp = new List<Caster>();
temp = casters.FindAll(x => x.SpellPower == casters.Max(y => y.SpellPower) && (x.TypeOfCaster == 0));
temp.AddRange(casters.FindAll(x => x.SpellPower == casters.Max(y => y.SpellPower) && (x.TypeOfCaster == 1)));
temp.OrderBy(x => x.TypeOfCaster).ThenBy(y => y.CasterName);
return temp;
}