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

C#如何将制表符分隔的字符串数组正确绑定到DataGridView

问题原因

你当前的代码没有对每行的制表符分隔内容做拆分,直接把整行字符串作为单个值传入dt.Rows.Add(),因此整行内容会被全部填充到第一列,其余列留空。

修复代码

遍历每行时,先用Split('\t')按制表符把单行内容拆分为对应列数的字符串数组,再传入行添加方法即可,修正后的完整代码如下:

// 读取文件所有行
string[] lines = File.ReadAllLines(filePath);

DataTable dt = new DataTable();
dt.Columns.Add("Name",typeof(string));
dt.Columns.Add("Food",typeof(string));
dt.Columns.Add("Color",typeof(string));
dt.Columns.Add("Fruit",typeof(string));

foreach(string s in lines)
{
   // 跳过空行避免报错
   if(string.IsNullOrWhiteSpace(s)) continue;
   // 按制表符拆分当前行的各个字段
   string[] rowFields = s.Split('\t');
   // 校验字段数量匹配列数,避免格式错误导致运行异常
   if(rowFields.Length == 4)
   {
       dt.Rows.Add(rowFields);
   }
}

myDataGridView.DataSource = dt;
可选优化
  • 如果拆分后的字段前后存在多余空白字符,可以把拆分逻辑改成s.Split('\t').Select(f => f.Trim()).ToArray(),自动去除字段首尾空格。
  • 如果文件存在表头行,可以跳过第一行的读取,不用把表头内容当成数据行加载。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.28 18:09:27