hinzu Ich habe eine Auflistung von Objekten eines Typs, die ich in einen anderen Typ konvertieren möchte. Das kann mit foreach leicht gemacht werden, aber ich würde gerne herausfinden, wie man die Aggregatfunktion von Linq dazu benutzt.So fügen Sie zu einer Liste mithilfe der Aggregatfunktion von Linq C#
Das Problem ist alle Aggregat Beispiele verwenden Typen Zeile Zeichenfolge oder int, die den Operator '+' unterstützen. Ich möchte, dass der Akkumulatortyp eine Liste ist, die keine '+' Semantik unterstützt.
Hier ist ein kurzes Beispiel:
public class DestinationType
{
public DestinationType(int A, int B, int C) { ... }
}
var set = from item in context.Items
select new { item.A, item.B, item.C };
var newSet = set.Aggregate(new List<DestinationType>(),
(list, item) => list.Add(new DestinationType(item.A, item.B, item.C)));
Das Problem ist, dass Liste <> .Add void zurückgibt. Der Rückgabetyp des zweiten Aggregationsparameters muss eine List sein.
Wenn ich eine Liste Art hatte, die ‚+‘ Typ Semantik unterstützt konnte ich nur den zweiten Parameter machen
list + item
Jedoch habe ich keine Sammlung Art finden können, die diese Art der Sache unterstützt.
Scheint, wie dies in Linq leicht möglich sein sollte. Gibt es einen Weg? Außerdem, wenn mir ein ganz einfacher Weg fehlt, würde ich gerne darüber auch lernen. Vielen Dank!
Danke für alle großen Antworten! Sam & Talljoes Antworten erreichten dies am einfachsten mit Linq. Danke nochmal! – Slaggg