Я застрял в группе LINQ, пытаясь решить ее без использования оператора foreach
, вот пример:
У меня есть две общие коллекции List<OrderHeader>
и List<OrderDetail>
, обе имеют одно и то же поле TOTRGVS
, которое содержит общую сумму из заказа, а номер заказа - это ключ с именем NDORGV
.
Затем я хочу найти «Заказы, которые не имеют одинаковые TOTRGVS
в OrderHeader
и OrderDetail
», поэтому я попытался выполнить следующий запрос:
List<RGVCAFAC_ERRORES> diff = (from d in lstOrderDetail
join c in lstOrderHeader on d.NDORGV equals c.NDORGV
group d by d.NDORGV into g
let difTOTOrderDetail = g.Select(p => p.TOTRGVS).Sum()
let difTOTOrderHeader = g.Key.????
let diffTOT = difTOTOrderHeader - difTOTOrderDetail
where diffTOT != 0
select new _ERRORS
{
NDORGV = g.Key,
IMPORT = diffTOT
}
).ToList();
in difTOTOrderHeader
Я не знаю, как извлечь поле TOTRGVS
из OrderHeader
. Я пытался использовать ключ, но не могу получить никакого поля, только расширения для методов форматирования.