我正在使用LINQ(vb.net)编写代码来查找数据表中每列的最大值。我的数据如下:
+ ----------- + ---------- + ---------- + ---------- +
|日期| Value1 | Value2 | Value3 |
+ ----------- + ---------- + ---------- + ---------- +
| 1/1/2013 | 12 | 13 | 19 |
| 1/2/2013 | 9 | 20 | 17 |
| 1/3/2013 | 17 | 5 | 10 |
+ ----------- + ---------- + ---------- + ---------- +
我想编写一个代码来返回所有数据行中每列最大值的单个数据记录,这样我就可以将结果与gridview绑定:
+ ---------- + ---------- + ---------- +
| Max1 | Max2 | Max3 |
+ ---------- + ---------- + ---------- +
| 17 | 20 | 19 |
+ ---------- + ---------- + ---------- +
答案 0 :(得分:2)
您可以使用Max
:
Dim rows = table.AsEnumerable()
Dim Max1 = rows.Max(Function(r) r.Field(Of Int32)("Value1"))
Dim Max2 = rows.Max(Function(r) r.Field(Of Int32)("Value2"))
Dim Max3 = rows.Max(Function(r) r.Field(Of Int32)("Value3"))
如果这些字段实际上是字符串(它们不应该),则必须使用Int32.Parse
。
如果您需要这些值作为GridView
的数据源,则可以使用DataTable
一行:
Dim tblSource = New DataTable()
tblSource.Columns.Add("Max1", GetType(Int32))
tblSource.Columns.Add("Max2", GetType(Int32))
tblSource.Columns.Add("Max3", GetType(Int32))
tblSource.Rows.Add(Max1, Max2, Max3)