c# - 如何使用 LINQ 从表中给定值找到范围之间的最高数字

标签 c# .net linq lambda

在我的数据库中有下表

Database Table

我正在使用 LINQ 从数据库中获取数据

 FlowCalcWeb.dbModelDataContext db1 = new FlowCalcWeb.dbModelDataContext();
  var EmergFlow = from p in db1.EmrgVents
                       where p.WettedArea == VarAtws
                       select new { p.VentingReq };

我想得到它适合的范围内的最高数字,并检索VentingReq

假设我的值是 55,它在 50 到 60 之间,WettedArea 中这个范围的最高数字是 60,所以我想从 VentingReq 中检索 63200

示例 2,给定数字 47 作为 wettedArea,我想从 VentingReq 52700 中检索,

我想我可以使用一些 linq,使用聚合函数,找到最接近的值,然后获取下一个值,但我不太确定该怎么做,因为我是 C# LAMBDA、LINQ 等方面的新手,

希望你能帮助我,谢谢!!

最佳答案

尝试这样的事情:

using (var db1 = new FlowCalcWeb.dbModelDataContext())
{
    var EmergFlow =
    (
        from p in db1.EmrgVents
        where p.WettedArea >= VarAtws
        orderby p.WettedArea
        select p.VentingReq
    ).Take(1);
}

关于c# - 如何使用 LINQ 从表中给定值找到范围之间的最高数字,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35470263/

相关文章:

c# - 如何编写一个函数来调用另一个函数并捕获一些异常?

c# - 对多个 ControlCollection 进行 Foreach

c# - ListView 项目绑定(bind)

c# - 如何将公司名称放入命名空间?

c# - 如何从 C# 保存到 Excel?

具有所需返回值的 C# 函数

c# - 如何更快/更智能地读取文本文件?

database - Linq 与数据库 View

c# - 在 Azure 中扩展应用程序服务时,是否会在所有实例上处理单个消息(来自队列)?

c# - YouTube API - 没有 channel Logo 参数?