Некорректное отображение данных в DataGridView
Всем привет. Делаю задание по считыванию данных с файла (целых чисел) и выводу их в таблицу.
Код считывания данных и попытки вывода в таблицу:
DataTable dt = new DataTable();
dt.Columns.Add("Header 1");
dt.Columns.Add("Header 2");
dt.Columns.Add("Header 3");
var list = new List<List<int>>();
var lines = File.ReadAllLines("1.txt");
foreach (var line in lines)
{
var str = line.Split(' ');
var numbers = new List<int>();
foreach (var item in str)
{
numbers.Add(int.Parse(item));
}
list.Add(numbers);
}
foreach (var item in list)
{
dt.Rows.Add(item);
}
dataGridView1.DataSource = dt;
Результат выполнения:
Не могу понять в чём проблема. Помогите пожалуйста
Ответы (1 шт):
При создании колонок в DataTable вы не указываете явно их тип: dt.Columns.Add("Header 1");. По умолчанию им будет назначен тип string. Поэтому ваши дальнейшие действия по конвертации значений в int не имеют смысла, т. к. при вставке в DataTable они будут снова преобразованы в string.
Если вам нужны именно числа, то явно укажите тип:
dt.Columns.Add("Header 1", typeof(int));
Дальнейший код в любом случае можно упростить до следующего:
var lines = File.ReadAllLines("1.txt");
foreach (var line in lines)
{
var str = line.Split(' ');
dt.Rows.Add(str);
}
dataGridView1.DataSource = dt;
Преобразование в int (если указан именно этот тип) будет выполнено автоматически.

