Получение ячейки из DataTable.Row.ItemArray с помощью Linq - PullRequest
1 голос
/ 15 марта 2012

У меня есть следующий ItemArray:

dt.Rows[0].ItemArray.. //{0,1,2,3,4,5}

Заголовки: item0, item1, item2 и т. Д.

Пока что, чтобы получить значение из ItemArray, я использовал его для вызова по индексу.

Есть ли способ получить значение в ItemArray с выражением Linq на основе имени столбца?

Спасибо

Ответы [ 3 ]

4 голосов
/ 15 марта 2012

Вы также можете использовать имя столбца, чтобы получить значение поля:

int item1 = row.Field<int>("Item1");

Вы также можете использовать LINQ-to-DataSet:

int[] allItems = (from row in dt.AsEnumerable()
                  select row.Field<int>("Item1")).ToArray();

или в синтаксисе метода:

int[] allItems = dt.AsEnumerable().Select(r => r.Field<int>("Item1")).ToArray();
1 голос
/ 15 марта 2012

Ответ Тима Шмельтера, вероятно, то, что вы ищете, просто добавьте также этот способ, используя класс Convert вместо DataRow.Field:

var q = (from row in dataTable.AsEnumerable() select Convert.ToInt16(row["COLUMN1"])).ToArray();
1 голос
/ 15 марта 2012

Если вы используете индексатор элементов вместо ItemArray, вы можете получить доступ к элементам по имени столбца, независимо от того, используете ли вы LINQ или нет.

dt.Rows[0]["Column Name"]

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...