【问题标题】:To find the number of rows in DataGridView where the values are between specified range?要查找 DataGridView 中值在指定范围内的行数?
【发布时间】:2014-06-18 14:27:53
【问题描述】:

我的 DataGridView 的一列包含许多不同的值。

例如:

 columnName
    10
    21
    23
    25
    12
    14
    16
    28
    30
    29
    36
    47
    56
    65
    78
    89
    96
    121
    126
    21
    132
    55
    16
    ... etc

这里我需要将介于 0-30、30-60、60-90、[...] 之间的值分开。

    {
    var sector1 = "no.of values lies between 0-30";
    var sector2 = "no.of values lies between 30-60";
    var sector3 = "no.of values lies between 60-90";
    var sector4 = "no.of values lies between 90-120";
     }

我试过了,

     try
     {
     var values = dataGridView1.Rows.Cast<DataGridViewRow>().Select(x => (int)x.Cells[columnName].Value);
     var sector1 = values.Count(x => x >= 0 && x < 30);
     var sector2 = values.Count(x => x >= 30 && x < 60);
     var sector3 = values.Count(x => x >= 60 && x < 90);
     var sector4 = values.Count(x => x >= 90 && x < 120);
     var sector5 = values.Count(x => x >= 120 && x < 150);
     var sector6 = values.Count(x => x >= 150 && x < 180);
     [...]
     MessageBox.Show(sector1.ToString());
     [...]
     }
     catch
     {
      MessageBox.Show("ERROR");
     }

但没用,我只收到错误通知。

任何人都可以建议查找两个范围之间的行数的语法吗?

【问题讨论】:

  • 我猜你遇到了异常。能否请您捕获异常并将消息粘贴到此处。
  • 您得到的异常究竟是什么?你能用 ex.Message 替换“ERROR”吗(前提是你捕获了 Exception ex)?

标签: c# datagridview datagridviewcolumn


【解决方案1】:

你能试试这个代码吗

var values = gvtest.Rows.Cast<GridViewRow>().Select(x => x.Cells[0].Text);
var sector1 = values.Count(x => Convert.ToInt32(x) >= 0 && Convert.ToInt32(x) < 30);

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2022-01-04
    • 2019-12-31
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多