Вернуть максимальное значение с помощью LINQ Query в VB.NET? - PullRequest
2 голосов
/ 03 ноября 2011

У меня есть метод, который принимает в качестве параметров идентификатор, дату начала и дату окончания. Он будет возвращать строки данных, каждая из которых соответствует дню недели, попадающему в диапазон дат. Строки все двойные. После возвращения в DataTable мне нужно иметь возможность использовать LINQ в VB.NET, чтобы вернуть максимальное значение. Как мне этого добиться? Вот начальная настройка?

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

'Do linq query here to return the maximum value

Другая альтернатива - просто вернуть максимальное значение только с заданным идентификатором, который будет немного проще реализовать, поэтому метод будет выглядеть следующим образом:

Dim dt as DataTable = GetMaximumValue(1)

'Do linq query here to return maximum value

Важно

Что делать, если я хочу выполнить запрос к DataRow вместо DataTable, а имена столбцов не совпадают, это что-то вроде MaxForMon, MaxForTue, MaxForWed` и т. Д ... и мне нужно взять Максимальное значение (будь то MaxForMon, MaxForTue или какой-либо другой столбец). Будет ли вариант для этого псевдоним столбца, возвращенного в хранимой процедуре? Еще я подумал о том, чтобы вместо того, чтобы делать это в LINQ, я, вероятно, должен просто обработать это в T-SQL.

1 Ответ

2 голосов
/ 03 ноября 2011

Вы можете использовать Расширения DataSet для 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();
...