LINQ 从列表中获取最大值

标签 linq

我有下表:

 ID Amt  Received
 -- ---- --------
 2  55   N 
 2  88   Y
 2  44   N
 3  5    N
 3  9    N
 4  5    N
 5  33   Y
 6  43   N
 7  54   N

    var result = (from rs in db.Exp
                  where rs.ID == id
                  && rs.Received == true
                  select rs).Max().Any();

给定一个 ID,我需要找到给定 ID 的最大 Amt,然后检查它是否为 Y,如果是,则返回 true,否则返回 false。

最佳答案

应该这样做;

db.Exp.
    Where(x => x.ID == id).
    OrderByDescending(x => x.Amt).
    Take(1).
    Any(x => x.Received == "Y");

关于LINQ 从列表中获取最大值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9403301/

相关文章:

c# - 使用 Linq to XML 检索 xml 部分

c# - 检查列表中的所有属性

C# 匿名函数递归

c# - 使用 LINQ,如何将 IList<IList<object>> 转换为 IList<object>?

c# - 如何在linq中加入连续的日期范围

c# - 使用 FoxPro 的 LINQ?

c# - 如何展平包含相关类的 IEnumerable 的类

c# - 有做笛卡尔积的好 LINQ 方法吗?

c# - ((IEnumerable)source).OfType<T>() 和 source as IEnumerable<T> 之间有什么区别

c# - 数据结构列表列表 - 我如何使用 linq 访问?