LINQ: Как исключить столбцы данных из запроса DataTable.ItemArray? - PullRequest
0 голосов
/ 19 июня 2011

Учитывая коллекцию строк данных, IEnumerable типа DataRow, как я могу запросить коллекцию, чтобы вычислить сумму всех значений в коллекции (то есть всех значений всех столбцов во всех строках) за исключениемиз двух конкретных столбцов?Я знаю только два столбца до запуска, и это те два, которые я хочу исключить.Все остальные, которые я хочу включить в сумму.

Существует метод расширения, который даст мне конкретное поле, например, Field<T>("Foo"), но мне действительно нужна возможность сказать сумму всех полей кроме поля X, Y и Z.

Ответы [ 2 ]

3 голосов
/ 19 июня 2011

Вы можете использовать больше LINQ:

DataColumn[] unwantedColumns = { table.Column1, ... };

var sum = table.Columns.Cast<DataColumn>()
                       .Except(unwantedColumns)
                       .Select(c => row.Field<int>(c))
                       .Sum();
0 голосов
/ 19 июня 2011

Не думаю, что вы можете изменить столбцы, которые есть у DataRow. Вы можете изменить столбцы DataTable, хотя.

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