我有一个包含几列的数据表
。我想返回与我的 id 匹配的那个,在 verlabel
列中具有最高值,在这种情况下我想返回 1.1
我如何实现这一目标?当前代码只是将列名返回到我的字符串变量中,而不是实际值。
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();
最佳答案
另一个选项将生成 DataRow
,可以从中选择任何相关的 Column
,前提是它不是 Null
var dataRow = dt.AsEnumerable()
.Where(row => row.Field<string>("id") == class.ID)
.OrderByDescending(row => row.Field<double>("verlabel"))
.FirstOrDefault();
var result = dataRow?["ColumnName"]
关于c# - 如何从数据表中获取最高值?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39978539/