列表获取最大我有以下表的LINQ从记录
ID Amt Received SchoolAmt
-- ---- -------- -------
2 55 N
2 88 Y 7
2 44 N 6
3 5 N
3 9 N
4 5 N 32
5 33 Y
6 43 N
7 54 N 66
对于给定的ID,我需要找到的最大数量,然后检查是否它被标记为Y如果是这样,标记结果为布尔true为false。要做到这一点
一种方法是:
db.Exp.
Where(x => x.ID == id)
.OrderByDescending(x => x.Amt)
.Take(1)
.Any(x => x.Received == "Y");
其作品,但我还需要补充一点SchoolAmt也应该是大于0
为什么以下不工作:
db.Exp.
Where(x => x.ID == id)
.OrderByDescending(x => x.Amt)
.Take(1)
.Any(x => x.Received == "Y" && x => x.SchoolAmt > 0);
当我尝试键入x => x.SchoolAmt> 0时Visual Studio不允许它,因为它似乎是不正确的syntex。
我怎么知道什么时候使用&& X .SchoolAmt> 0与我所拥有的。意思是,我看到过类似于x => x.Received ==“Y”&& x => x.SchoolAmt> 0,用于 – 2012-02-22 22:40:15
之前的where子句@Nate“x =>”正在制作一个lambda表达式。这基本上是让编译器为你创建一个方法。 “x”是方法的参数,之后的所有内容都是方法体中包含的内容。每个谓词只能使用一次(在开始处)。 – 2012-02-22 22:47:26
@NatePet编译器将我的答案中的第一个代码块变成类似于第二个代码块 - “x =>”被映射到它为您制作的方法的“(YourClass x)”参数列表。 – 2012-02-22 22:48:20