Laden...

Linq Abfrage auf Liste deren Items wieder eine Liste beinhaltet

Erstellt von mikefried vor 10 Jahren Letzter Beitrag vor 10 Jahren 859 Views
M
mikefried Themenstarter:in
198 Beiträge seit 2010
vor 10 Jahren
Linq Abfrage auf Liste deren Items wieder eine Liste beinhaltet

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

S
417 Beiträge seit 2008
vor 10 Jahren

Hi,

ich denke du suchst SelectMany():

CAuftragEinkauf_BelegPInfoList = p.SelectMany(f => f.CAuftragEinkauf_BelegPInfoList)
M
mikefried Themenstarter:in
198 Beiträge seit 2010
vor 10 Jahren

OK!

Danke für Deine Antwort, muss ich mal versuchen...

Gruss Mike

M
mikefried Themenstarter:in
198 Beiträge seit 2010
vor 10 Jahren

Suuuper!

Danke noch mal hat funktioniert.