verwendetes Datenbanksystem: <MS SQL Server 2012>
Hallo an Alle!
e.Result = (from _item in _list
group _item by _item.Artikelnummer into p
select new CAuftragEinkauf_BestellungRow()
{
Artikelnummer = p.Key,
MengeAusBelegPos = p.Sum(x => (double)x.MengeAusBelegPos),
Frage ====> CAuftragEinkauf_BelegPInfoList = AuftragsEinkauf_Bestellung.Fill_CAuftragEinkauf_BelegPInfoList(p.AsEnumerable())
}).ToList<CAuftragEinkauf_BestellungRow>();
private static List<CAuftragEinkauf_BelegPInfo> Fill_CAuftragEinkauf_BelegPInfoList(IEnumerable<CAuftragEinkauf_BestellungRow> pData)
{
List<CAuftragEinkauf_BelegPInfo> _tmplist = new List<CAuftragEinkauf_BelegPInfo>();
foreach (var _item in pData)
{
_tmplist.AddRange(_item.CAuftragEinkauf_BelegPInfoList);
}
return _tmplist;
}
_list ist eine List<CAuftragEinkauf_BestellungRow> Liste. Jedes Listenelement beinhaltet eine Liste CAuftragEinkauf_BelegPInfoList vom Typ List<CAuftragEinkauf_BelegPInfo>.
Nun möchte ich die _list nach Artikelnummern gruppieren. Die Unterlisten der jeweiligen Artikelnummer sollen im neuen Item new CAuftragEinkauf_BestellungRow() wieder
unter der Liste CAuftragEinkauf_BelegPInfoList zusammenkopiert werden. Wenn ich meine Methode Fill_CAuftragEinkauf_BelegPInfoList(...) benutze funktioniert die Abfrage.
Nuuuur würde ich gern wissen, ob es nicht eine direkte Möglichkeit in der linq Abfrage gibt, ohne eine foreach ?
Gruss Mike
Hi,
ich denke du suchst SelectMany()
:
CAuftragEinkauf_BelegPInfoList = p.SelectMany(f => f.CAuftragEinkauf_BelegPInfoList)