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 に答える