Unsere Datenschutzrichtlinie wird in Kürze aktualisiert. Bitte sehen Sie sich die Vorschau an.

LINQ Grundkurs

Vergleich und Überprüfung

Testen Sie unsere 2016 Kurse

10 Tage kostenlos!

Jetzt testen Alle Abonnements anzeigen
Mit den hier vorgestellten Operationen können Listen verglichen bzw. deren Inhalt überprüft werden.
05:04

Transkript

Wir beschäftigen uns in den folgenden Minuten mit der Überprüfung der Inhalte unserer Liste. Also statt dass wir irgendwelche Dinge filtern oder dass wir Dinge abfragen, wollen wir eher den Status der Liste abfragen. Das kann man mit insgesamt vier Methoden machen, und zwar Any, All, Contains und SequenceEqual. Widmen wir uns gleich dem allerersten, und zwar Any. Mit Any kann man im einfachsten Fall prüfen, ob die Liste überhaupt etwas enthält. Meine Liste hat fünf Einträge, demnach ist Any True. Man kann aber noch viel mehr mit Any machen. Und zwar kann man ein Prädikat übergeben. Das ist die zweite Überladung. Dieses Prädikat wird gegen jedes Element geprüft. Wenn das erste Element erfolgreich geprüft wird, wird die weitere Prüfung abgeschlossen und Any liefert automatisch True zurück. Also wenn ich zum Beispiel frage: Sind alle Elemente größer als 5? Dann bekomme ich automatisch ein False. Denn meine Liste enthält nur Objekte von 1 bis 5. Während sich Any darum kümmert, ob es überhaupt irgendein Element gibt, das den Anforderungen entspricht, ist All darauf ausgelegt, dass alle Elemente dem Kriterium entsprechen müssen. All liefert für leere Listen automatisch True, denn es prüft die Liste so lange, bis es ein Element gibt, das dem Prädikat widerspricht. Wenn ich jetzt also sage: x != 0, dann bekomme ich ein True, denn alle Elemente in der Liste sind ungleich 0. Demgegenüber wäre natürlich ein x 5 wieder ein False, denn nicht jedes Element ist größer als 5. Kommen wir zum dritten Teil, den wir betrachten wollen, und zwar Contains. Mit Contains schauen wir, ob es das Element in der Liste gibt. Also wenn ich hier eine 5 übergebe, bekomme ich ein True, da 5 in der Liste zu finden ist. Neben der Übergabe eines einfachen Objekts kann ich zeitgleich einen Comparer übergeben. Normalerweise werden diese Gleichheitsoperationen immer über die Equals- oder GetHashCode-Methode der Objekte gemacht. Das kann aber situativ abhängig nicht möglich sein, man müsste dann die Equals-Methode für das Objekt immer überschreiben. Daher kann man je nach Situation auch einen IEqualComparer schreiben und diesen dann mitgeben. Das mache ich an dieser Stelle nicht, weil ich nur schwierig im C# Interactive Window eine entsprechende Klasse anlegen kann. Kommen wir zur letzten Methode, und zwar zu SequenceEqual. Mit SequenceEqual kann ich zwei Sequenzen miteinander vergleichen. Vergleiche ich also die Liste mit sich selbst, bekomme ich selbstverständlich ein True zurück, da die Liste mit sich selbst völlig gleich ist. Wenn ich aber eine Liste vergleiche, die die Werte umgekehrt enthält, also mache ich das so und gehe von 5 absteigend bis auf 1 hinunter, dann erhalte ich ein False. Denn SequenceEqual überprüft tatsächlich sequenziell beide Listen. Es wird also zuerst das erste Element verglichen beider Listen. Ist dies nicht gleich, wird der weitere Vergleich sofort abgebrochen und sofort ein False zurückgeliefert. Wir können auch mal schauen, was passiert, wenn wir eine Liste übergeben, die weniger Objekte enthält. Dann liefert SequeceEqual auch False, weil es nicht exakt die gleiche Sequenz ist. Also, es reicht nicht aus, dass die Reihenfolge stimmt, sondern es muss auch die Anzahl stimmen. Tatsächlich funktioniert es intern so, dass zuerst die Anzahl beider Sequenzen miteinander verglichen wird. Danach werden erst die enthaltenen Objekte miteinander verglichen. Sie haben in diesem Video Any, All, Contains und SequenceEqual kennengelernt. Mit diesen Methoden können Sie entsprechende Statusinformationen über Ihre Listen erlangen.

LINQ Grundkurs

Lernen Sie die LINQ-Operationen kennen und erstellen Sie praktische Abfragen direkt in C# und .NET.

2 Std. 10 min (26 Videos)
Derzeit sind keine Feedbacks vorhanden...
 
Hersteller:
Software:
Exklusiv für Abo-Kunden
Erscheinungsdatum:24.10.2016

Dieser Online-Kurs ist als Download und als Streaming-Video verfügbar. Die gute Nachricht: Sie müssen sich nicht entscheiden - sobald Sie das Training erwerben, erhalten Sie Zugang zu beiden Optionen!

Der Download ermöglicht Ihnen die Offline-Nutzung des Trainings und bietet die Vorteile einer benutzerfreundlichen Abspielumgebung. Wenn Sie an verschiedenen Computern arbeiten, oder nicht den ganzen Kurs auf einmal herunterladen möchten, loggen Sie sich auf dieser Seite ein, um alle Videos des Trainings als Streaming-Video anzusehen.

Wir hoffen, dass Sie viel Freude und Erfolg mit diesem Video-Training haben werden. Falls Sie irgendwelche Fragen haben, zögern Sie nicht uns zu kontaktieren!