У меня есть datatable
, который имеет несколько столбцов. Я хочу вернуть тот, который соответствует моему идентификатору, с наибольшим значением в столбце verlabel
, в данном случае я хочу, чтобы вернуться 1.1Как получить наивысшее значение из datatable?
Как этого добиться? Текущий код просто возвращает имя столбца в мою строковую переменную, а не фактическое значение.
Namespace.EnquiryEngine.DataLists ds2 = new Namespace.EnquiryEngine.DataLists("VERSION");
Namespace.Common.KeyValueCollection ds2params = new Namespace.Common.KeyValueCollection();
ds2params.Add("id", class.ID);
ds2.ChangeParameters(ds2params);
System.Data.DataTable dt = ds2.Run(false) as System.Data.DataTable;
String version = Convert.ToString(dt.Rows[0]["version"]);
Новый код:
var highestVersion = (from row in dt.AsEnumerable()
where row.Field<int>("id") == doc.ID
select row.Field<double>("verlabel")).Max();
Посмотрите [LINQ к DataTable] (http://stackoverflow.com/questions/10855/linq-query-on-a-datatable) –