在C#中,如何将数组绑定到DataGridView,以便显示数组中的值?

在C#中,如何将数组绑定到DataGridView,以便显示数组中的值?,c#,winforms,visual-studio-2010,C#,Winforms,Visual Studio 2010,我正在使用Visual C#2010 Express。我有一个类似于arr[100][2]的字符串数组。这是我的3行代码 string FilePath = @"c:\data.txt"; var arrData = File.ReadLines(FilePath).Select(line => line.Split('\t')).ToArray(); dataGridView1.DataSource = arrData; 运行代码时,我在DataGridView控件中看到7个列标

我正在使用Visual C#2010 Express。我有一个类似于arr[100][2]的字符串数组。这是我的3行代码

 string FilePath = @"c:\data.txt";
 var arrData = File.ReadLines(FilePath).Select(line => line.Split('\t')).ToArray();
 dataGridView1.DataSource = arrData;
运行代码时,我在DataGridView控件中看到7个列标题,而不是数组的内容:Length、LongLength、Rank、SyncRoot、IsReadOnly、IsFixedSize和IsSynchronized。这是什么

不知何故,我显示的是数组的属性,而不是数组中实际包含的值


我知道数组中有合法的值,因为当我逐步浏览代码时,我可以清楚地看到内容(姓名和年龄)。我做错了什么?

你能把你的数据列成一个列表吗。所以应该是这样的:

 string FilePath = @"c:\data.txt";
 var arrData = File.ReadLines(FilePath).Select(line => line.Split('\t')).ToList();
 dataGridView1.DataSource = arrData;

这应该是你需要做的全部。此外,请确保您的数据中也包含数据:)

首先尝试转换为“对象”列表。我创建了一个测试文件,名字、姓氏和年龄都由一个要测试的选项卡分隔:

string FilePath = @"c:\data.txt";
var arrData = File.ReadLines(FilePath).Select(line => 
                                              line.Split('\t')).ToArray();

var query = from x in arrData
            select new { FirstName = x[0], LastName = x[1], Age = x[2] };

dataGridView1.DataSource = query.ToList();

我认为您正在尝试的是相当容易出错的。我首先考虑把这个文件转换成一个实际的对象列表。< /P>你能说你的应用程序是什么吗?它是asp.net、wpf还是其他什么?它是一个WindowsFormsApplication。这些是唯一的代码行(附加到按钮点击事件)。此外,请考虑使用CSV/TSV库,而不是编写自己的代码。“我把我的小极简单元测试库放在这里:实际上和ToArray()的结果一样。”克里斯。你好用ToList()将其更改为列表绝对没有效果。同样的结果。它不显示我列表中的内容,而是显示我上面提到的内容。是的,我可以看到arrData中包含数据。:)