ich mit einer LINQ-Gruppe durch Situation sind stecken versucht, es zu lösen, ohne foreach
Anweisung, hier die escenary ist:LINQ Operationen auf Lambda-Gruppierung
Ich habe zwei generische Sammlungen List<OrderHeader>
und List<OrderDetail>
, haben beide eine gleiche Feld TOTRGVS
enthält den Gesamtbetrag aus einem Auftrag, und die Nummer der Bestellung ist der Schlüssel mit dem Namen NDORGV
.
Dann will ich „Aufträge, die nicht die gleichen TOTRGVS
in OrderHeader
haben und OrderDetail
“ finden, so habe ich versucht, die folgende Abfrage:
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
Ich weiß nicht, wie das TOTRGVS
Feld abrufen von OrderHeader
. Ich habe versucht, Schlüssel zu verwenden, aber kann kein Feld, nur Erweiterungen für Formatierungsmethoden erhalten.
Wenn Sie denken, es ist schwer dies ohne Verwendung einer foreach-Schleife zu tun bekommen, überlegen, wie viel schwieriger wird es zu debuggen. Gehen Sie voran und verwenden Sie eine Schleife, wenn das einfacher ist. –