3

我正在使用 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。这是什么?

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

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

4

2 回答 2

2

尝试先转换为“对象”列表。我创建了一个包含名字、姓氏和年龄的测试文件,所有这些文件都由一个选项卡分隔以进行测试:

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();

我认为您正在尝试的内容很容易出错。我会考虑首先将文件转换为实际的对象列表。

于 2012-09-06T16:16:46.687 回答
0

你能把你的 arrData 变成一个列表吗?所以它会是这样的:

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

这应该是您需要做的所有事情。另外,请务必确保您的 arrData 实际上也包含数据:)

于 2012-09-06T16:15:10.797 回答