【问题标题】:How to find out Minimum & maximum Date from a datagridview in C#?如何从 C# 中的 datagridview 中找出最小和最大日期?
【发布时间】:2019-03-21 06:24:28
【问题描述】:

我有DataGridView,其中一行包含日期,我想从该行中找到最小值和最大值。

我怎样才能得到它?

【问题讨论】:

标签: c# datagridview


【解决方案1】:

您可以使用集合的帮助:

// 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();

当然,更有效的方法是手动查找最大值,这样您就不需要额外的收集来为您完成它:)

【讨论】:

  • @ErnodeWeerd 嗯,我没有看到任何像Max for DataGridViewCellsColection 这样的方法...既然单元格可以容纳任何对象,您甚至希望它如何工作?
  • @ErnodeWeerd 这就是为什么它不那么明显:)
【解决方案2】:

据我估计,使用 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();

【讨论】:

    猜你喜欢
    • 2012-09-05
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-03-12
    • 1970-01-01
    • 1970-01-01
    • 2012-05-16
    相关资源
    最近更新 更多