Запрос данных

#c#

#c#

Вопрос:

У меня есть DataTable, который выглядит следующим образом:

 Id Value
123 4.0
123 5.0
234 1.0
345 2.0
345 3.0
  

Я хочу в конечном итоге получить (возможно, новую DataTable), которая содержит сумму
значения, сгруппированные по идентификатору следующим образом:

 Id SumOfValue
123 9.0
234 1.0
345 5.0
  

Вот мой код,

 var query = from row in dTable.AsEnumerable()
group row by row.Field<double>("ITEM_NO") into grp
orderby grp.Key
select new
{
    ITEM_NO = grp.Key,
    sum = grp.Sum(r = r.Field<double>("ITEM_STOCK"))
};
  

Я получаю сообщение об ошибке, что r is undefined также я не могу добавить эти значения в новую datatable.

Кто-нибудь знает, как это написать?

Спасибо.

Ответ №1:

Я полагаю, что вы неправильно указываете операцию. Попробуйте это:

 var query = from row in dTable.AsEnumerable()
                    group row by row.Field<double>("ITEM_NO") into grp
                    orderby grp.Key
                    select new
                    {
                        ITEM_NO = grp.Key,
                        sum = grp.Sum(r => r.Field<double>("ITEM_STOCK"))
                    };
  

Разница заключается в r => r.Field вместо r = r.Field .

Комментарии:

1. @RushabhShah Всегда пожалуйста. Как я сказал выше, если это вас устраивает, вы должны принять ответ, нажав на галочку, и вернуться к своим старым вопросам и принять ответ, если он удовлетворительный.