You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

DataGridView列最大值获取失败求助:值未添加至List问题

问题解决:List.Append()无法添加元素的原因及修正

核心问题

List<int>.Append() 方法不会修改原集合——它会返回一个包含新增元素的新序列,而你没有把这个新序列赋值回原List,导致intValues始终是空集合。

修正方案

把 Append 替换为 List<T>.Add() 方法,这个方法会直接向原List中添加元素:

List<int> intValues = new List<int>();
foreach (DataGridViewRow row in dataGridView2.Rows)
{
    // 检查目标单元格是否非空
    if (!(row.Cells[$"{comboBox1.Text + comboBox2.Text}DataGridViewTextBoxColumn"].Value?.ToString() is ""))
    {
        var cellValue = row.Cells["donneesAVSS085DataGridViewTextBoxColumn"].Value;
        if (!(cellValue is DBNull))
        {
            // 用Add替代Append,直接修改原List
            intValues.Add(Convert.ToInt32(cellValue));
            label17.Text = cellValue.ToString();
        }
    }
}

// 获取最大值(优化写法)
int max = intValues.Count > 0 ? intValues.Max() : 0;

额外优化说明

  • 手动循环找最大值可以用LINQ的Max()方法简化,同时要判断List是否为空,避免抛出InvalidOperationException
  • 优化变量名(把a改为cellValue)提升代码可读性
  • label17.Text会被循环的最后一次有效值覆盖,如果需要展示所有值,建议用拼接字符串或其他方式

内容的提问来源于stack exchange,提问作者LiterallyGutsFromBerserk

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.18 17:17:00