Hallo,
ich habe eine Collection mit einigen Datensätzen und möchte nun mit LINQ bestimmte davon ausgeben lassen.
Bisher habe ich mit der Select Anweisung immer nur Felder ausgegeben, aber diesmal benötige ich den kompletten Datensatz/ Datensätze, bei denen die Bedingungen zutreffen.
Mein bisheriger Code:
var jaehrlicherFilter = (from f in Sparverlauf
where f.Wertdatum.Day == 31 &&
f.Wertdatum.Month == 12
select f).ToList() ;
Meine Überlegung dazu war, evtl nur mit select f dann den kompletten Satz zu bekommen, dies scheint nicht der Fall zu sein. Hat jmd Ideen?
Vielen Dank schon mal.
PS: Gibt es eine Möglichkeit LINQ Ausdrücke so zu debuggen, dass man auch verfolgen kann was gerade passiert
Das f stellt hier das komplette Objekt aus der Liste Sparverlauf dar.
Wie kommst Du drauf, dass dies anders wäre?
Direkt Debuggen kann man Linq nur im Lambda-Syntax.
- performance is a feature -
Microsoft MVP - @Website - @AzureStuttgart - github.com/BenjaminAbt - Sustainable Code
Das sind Grundlagen ich denke das die Moderatoren und Admins explizit drauf aufmerksam machen werden.
Im Großen und ganzen schau dir einfach mal die Dokumentation auf
an.
Da wirst du sicherlich schnell auf eine Antwort kommen! Dort gibt es Unmengen an beispielen.
Gruß.
Dein geposteter Code-Ausschnitt liefert doch ganz eindeutig wieder eine Liste zurück. Das select f bezieht sich auf einen (oder mehrere) Datensätze deiner Collection Sparverlauf. Mit
foreach (var x in jaehrlicherFilter)
{
Console.WriteLine(x.DeinBeliebigerPropertyName)
}
Kannst du nun auf den oder die selektierten Datensätze zugreifen. Oder alternativ mit
var x = jaehrlicherFilter.FirstOrDefault()
konkret auf den ersten Datensatz (sofern vorhanden)
Ist vielleicht mal interessant, sie die SQL-Statements genauer anzusehen und mal einen Query-Plan machen zu lassen. Würde mich nicht wundern, wenn da der Hund begraben liegt...
Sumer
Sehr unwahrscheinlich; ziemlich genau 0.
- performance is a feature -
Microsoft MVP - @Website - @AzureStuttgart - github.com/BenjaminAbt - Sustainable Code