【发布时间】:2019-03-21 06:24:28
【问题描述】:
我有DataGridView,其中一行包含日期,我想从该行中找到最小值和最大值。
我怎样才能得到它?
【问题讨论】:
标签: c# datagridview
我有DataGridView,其中一行包含日期,我想从该行中找到最小值和最大值。
我怎样才能得到它?
【问题讨论】:
标签: c# datagridview
您可以使用集合的帮助:
// select row with index that you want (I used 0 for example)
var row = dataGridView1.Rows[0];
List<DateTime> datesInRow = new List<DateTime>();
foreach (DataGridViewCell cell in row.Cells)
datesInRow.Add((DateTime)cell.Value);
var maxDate = datesInRow.Max();
当然,更有效的方法是手动查找最大值,这样您就不需要额外的收集来为您完成它:)
【讨论】:
Max for DataGridViewCellsColection 这样的方法...既然单元格可以容纳任何对象,您甚至希望它如何工作?
据我估计,使用 linq 方法。因为简短而基本的代码。
var dateTimes = dataGridView1.Rows.Cast<DataGridViewRow>()
//.Select(x => (DateTime) x.Cells["ColumnName"].Value); //if column type datetime
//or
.Select(x => Convert.ToDateTime(x.Cells["ColumnName"].Value));
var minValue = dateTimes.Min();
var maxValue = dateTimes.Max();
【讨论】: