Ich habe folgende Query, in der data eine List<Dataset> (Dataset ist eine eigene Klasse von mir) ist:
var groups = (from d in data
group d by new { d.Name, d.Client, d.Project, d.Job }
into groupedData
where groupedData.Count() > 0
select new Dataset { Name = groupedData.Key.Name, Client = groupedData.Key.Client, Project = groupedData.Key.Project, Job = groupedData.Key.Job }).Distinct();
Mein Problem ist nun, dass die Klasse Dataset über weitere Properties verfügt, die ich gerne befüllen würde. Meine Wunschvorstellung sähe also so aus:
var groups = (from d in data
group d by new { d.Name, d.Client, d.Project, d.Job }
into groupedData
where groupedData.Count() > 0
select new Dataset { Division = d.Division, Approval = d.Approval, Name = groupedData.Key.Name, Client = groupedData.Key.Client, Project = groupedData.Key.Project, Job = groupedData.Key.Job }).Distinct();
Das Problem ist, dass ich innerhalb des group by Kontextes nicht mehr auf mein "d" zugreifen kann. Kann ich das irgendwie umgehen oder besser machen?
Ein Ansatz wäre folgender, den ich irgendwie aber sehr umständlich finde:
var groups = (from d in data
group d by new { d.Name, d.Client, d.Project, d.Job }
into groupedData
where groupedData.Count() > 0
select new Dataset { Division = (from d in data where d.Name == groupedData.Key.Name select d.Division).First() }).Distinct();
Wenn ich das nun für 3-4 weitere Properties mache, habe ich eine endlos lange Abfrage...
Vielleicht noch mal kurz formuliert, was ich eigentlich will: ich will eine Liste mit Datasets nach bestimmten Properties gruppieren und dann auf alle Properties dieser sortierten Datasets zugreifen.
Vielen Dank.