如何从DataTable中提取Email列所有值拼接为单个字符串
DataTable指定列拼接分号分隔字符串实现方案
核心实现(LINQ简洁写法)
首先引入所需命名空间:
using System.Data; using System.Linq;
核心代码,直接传入你存储查询结果的DataTable对象即可:
// 替换dt为你实际的DataTable变量名 string emailResult = string.Join(";", dt.AsEnumerable() .Select(r => r.Field<string>("Email")) .Where(email => !string.IsNullOrWhiteSpace(email)) );
代码逻辑说明:
- 遍历DataTable所有数据行,逐行读取
Email列的字符串值 - 自动过滤空值、全空白的无效邮箱,避免拼接后出现多余的连续分号
- 以分号
;为分隔符,把所有有效邮箱拼接为单行字符串
用你提供的示例数据运行,输出结果完全符合预期:
Why@aol.com;Sit@aol.com;Wow@aol.com;Who@aol.com
兼容写法(无LINQ环境可用)
如果你的项目版本较低不支持LINQ,可以用循环+StringBuilder实现,效果一致,首先引入命名空间:
using System.Data; using System.Text;
实现代码:
StringBuilder sb = new StringBuilder(); foreach (DataRow row in dt.Rows) { string email = row["Email"].ToString().Trim(); if (string.IsNullOrEmpty(email)) continue; if (sb.Length > 0) sb.Append(";"); sb.Append(email); } string emailResult = sb.ToString();
内容的提问来源于stack exchange,提问作者Manny
相关产品推荐
相关产品推荐

