我有一个这样的类:
public class CookingRecipe
{
public int Index { get; set; }
public int A { get; set; }
public int B { get; set; }
public int C { get; set; }
public int Energy { get; set; }
public CookingRecipe(int index, int a, int b, int c, int energie)
{
Index = index;
A = a;
B = b;
C = c;
Energy = energie;
}
}
我有3个整数(MaxA、MaxB和MaxC)和一个变量IEnumerable,如下所示,但我想过滤一些不符合且具有最大能量的IEnumerable:
用LINQ做的更好的方法是什么?我已经编辑了,因为我忘记了最大条件...
所以我得到了这样的东西(感谢马格纳斯)
var result = MyList.Where(x => x.Sum(y => y.A) <= MaxA && x.Sum(y => y.B) <= MaxB && x.Sum(y => y.C) <= MaxC);
但是如何在最大能量上增加滤波器呢?
1条答案
按热度按时间ovfsdjhp1#
您需要在顶层使用
Where
来筛选子组,然后在子组上使用Sum
来与Max* 变量进行比较: