Ich habe eine Liste mit ca. 120.000 Objekte. Aus dieser Liste möchte ich Daten extrahieren, um Personen und Subskriptionsobjekte zu erstellen. Logik ist, dass 1 Person 1 oder mehr Zeitungsabonnements haben kann.LINQ-Abfrage mit if-statment
Ich habe Schwierigkeiten, eine Linq-Abfrage zu schreiben, die nur dann ein neues Person-Objekt hinzufügt, wenn es noch nicht erstellt wurde. In Pseudo wie Code etwas wie folgt aus:
persons.Select(x =>
if (PersonIsAdded(x))
{
var person = GetPerson(x);
person.Address = "XXX";
person.SubscriptionList.Add{new subscription() {Name = "newspaperName}
}
else
{
new Person{ Address = "XYZ", SubscriptionList.Add{new subscription() {Name =
"newspaperName"} }
).ToList();
Dies ist nicht die Art, diese Objekte zu erstellen. Sie benötigen eine 'GroupBy' und erstellen das gesamte Los in einer einzigen Abfrage. Kannst du den Rest des Codes zeigen, damit wir dir eine gute Lösung geben können? – Enigmativity
Es wäre auch toll, wenn Sie tatsächlich gültigen C# -Code veröffentlicht hätten. Etwas, mit dem wir mit wenig Aufwand arbeiten können. – Enigmativity
Gibt es einen Grund dafür, dass dies LinQ sein muss? Kannst du zuerst eine 'foreach'-Schleife erstellen? Es wird definitiv besser für Ihr Verständnis sein, als eine LinQ-Anweisung zu kopieren. – nvoigt