如何从SQL填充的DataGridView提取age列整数数据到列表?
从DataGridView提取"age"列整数到列表的实现方案
没问题,我来帮你搞定这个需求!下面是具体的实现思路和代码示例,完全适配你提到的场景:
核心思路拆解
- 定位目标列:通过列名
"age"获取对应索引,比硬写数字索引更灵活,后续列顺序变动也不会出错 - 遍历有效行:跳过DataGridView默认的新行(如果开启了允许添加新行的功能),避免空数据干扰
- 安全转换数据:先判断值是否有效,再转换为整数,防止空值或非整数导致程序报错
C#代码示例(直接操作DataGridView)
// 初始化用来存储age整数的列表 List<int> ageList = new List<int>(); // 获取"age"列的索引,避免硬编码列位置 int ageColumnIndex = dataGridView1.Columns["age"].Index; // 遍历DataGridView的每一行数据 foreach (DataGridViewRow row in dataGridView1.Rows) { // 跳过新增行(如果DataGridView允许用户添加新行的话) if (row.IsNewRow) continue; // 取出当前行age列的原始值 object ageValue = row.Cells[ageColumnIndex].Value; // 安全转换为整数:先检查值不为空,再尝试转换 if (ageValue != null && int.TryParse(ageValue.ToString(), out int age)) { ageList.Add(age); } } // 至此,ageList里就保存了所有有效的age整数,你可以直接用于后续逻辑了
进阶方案(从绑定的DataTable提取)
如果你的DataGridView是绑定了DataTable的,直接从数据源提取效率会更高,代码也更简洁:
// 假设你的DataGridView绑定的数据源是名为dataTable的DataTable List<int> ageList = dataTable.AsEnumerable() // 过滤掉age列值为空的行 .Where(row => row["age"] != DBNull.Value) // 将有效行的age值转换为整数并提取 .Select(row => row.Field<int>("age")) .ToList();
内容的提问来源于stack exchange,提问作者Limatuz
相关产品推荐
相关产品推荐

