【问题标题】:Return Max value with LINQ Query in VB.NET?在 VB.NET 中使用 LINQ 查询返回最大值?
【发布时间】:2011-11-03 13:17:02
【问题描述】:

我有一个方法,它接受一个 id、一个开始日期和结束日期作为参数。它将返回与日期范围之间的星期几相对应的数据行。行都是双打的。将其返回到 DataTable 后,我需要能够在 VB.NET 中使用 LINQ 来返回最大值。我怎样才能做到这一点?这是初始设置?

Dim dt as DataTable = GetMaximumValue(1,"10/23/2011","11/23"/2011")

'Do linq query here to return the maximum value

另一种选择是只返回一个刚刚给定 id 的最大值,这将更容易实现,因此该方法如下所示:

Dim dt as DataTable = GetMaximumValue(1)

'Do linq query here to return maximum value

重要

如果我想查询 DataRow 而不是 DataTable 并且列名不相同,它们类似于 MaxForMonMaxForTue、MaxForWed 等,我需要采取最大值(无论是 MaxForMon、MaxForTue 还是其他一些列)。是否可以选择为存储过程中返回的列设置别名?我想到的另一件事是不要在 LINQ 中执行此操作,我可能应该只在 T-SQL 中处理它。

【问题讨论】:

    标签: vb.net linq linq-to-objects


    【解决方案1】:

    您可以使用DataSet Extensions for Linq 查询数据表。

    以下查询应该会有所帮助。

    Dim query = _
        From value In dt.AsEnumerable() _
        Select value(Of Double)("ColumnName").Max();
    

    如果您现在不知道哪一列将保留您可以使用的最大值:(C#)

    var result = from r in table.AsEnumerable()
                 select r.ItemArray.Max();
    

    【讨论】:

    • 我会试试这个。如果我改为查询 DataRow 而不是 DataTable 会怎样?
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2010-11-28
    • 1970-01-01
    • 2022-08-09
    相关资源
    最近更新 更多