C#中如何无需循环将数组值垂直填充到DataTable指定列?
快速将数组值垂直填充到DataTable列的方法
你可以借助LINQ或DataTable自带的方法简化代码,避免手动编写遍历循环的冗余结构,以下是两种实用方案:
方案1:用LINQ生成行集合并批量添加
通过LINQ一次性生成对应数量的DataRow,赋值后批量添加到DataTable,代码更简洁:
string[] months = { "Jan", "Feb", "Mar" }; DataTable dt = new DataTable(); dt.Columns.Add("Months", typeof(string)); // 生成行并批量插入 dt.Rows.AddRange( months .Select(_ => dt.NewRow()) .Select((row, idx) => { row["Months"] = months[idx]; return row; }) .ToArray() );
方案2:用LoadDataRow简化单行插入逻辑
利用LoadDataRow方法,结合List的ForEach方法,一行代码完成填充:
string[] months = { "Jan", "Feb", "Mar" }; DataTable dt = new DataTable(); dt.Columns.Add("Months", typeof(string)); months.ToList().ForEach(m => dt.LoadDataRow(new object[] { m }, LoadOption.Upsert));
注:两种方法底层都会遍历数组,但无需你手动编写foreach循环的结构,达到了“简化代码”的需求。
内容的提问来源于stack exchange,提问作者Ryan Forster
相关产品推荐
相关产品推荐

