Предположим, у меня есть DataTable с пятью столбцами. Мне любопытно, почему следующие работы:Добавление столбцов в DataTable с использованием SetOrdinal
dt.Columns.Add("Blah").SetOrdinal(5);
Но следующий Выдает ArgumentOutOfRangeException
:
dt.Columns.Add("Blah").SetOrdinal(dt.Columns.Count);
Я также попытался
dt.Columns.Add("Blah").SetOrdinal(dt.Columns.Count - 1);
, который работает, но я не совсем Конечно, почему. Это связано с тем, что столбец добавляется до выполнения SetOrdinal
, тем самым увеличивая счет за пределами диапазона столбцов?
Ну объяснил, спасибо. Хороший совет по избеганию кода, который менее ясен. –
Это немного старо, но я думаю, вы имели в виду это вместо этого: dt.Columns.Add («Бла»); dt.Columns ["Blah"]. SetOrdinal (dt.Columns.Count-1); Но на самом деле это NOP, так как в любом случае новый столбец будет добавлен в конец. Это был бы более интересный пример, который перемещает новый столбец в начало: dt.Columns.Add («Бла»); dt.Columns ["Blah"]. SetOrdinal (0); –
Я пытался улучшить форматирование, но я думаю, что не могу. –