Am 14. September 2017 haben wir eine überarbeitete Fassung unserer Datenschutzrichtlinie veröffentlicht. Wenn Sie video2brain.com weiterhin nutzen, erklären Sie sich mit diesem überarbeiteten Dokument einverstanden. Bitte lesen Sie es deshalb sorgfältig durch.

Visual C# 2012 Grundkurs

Foreach-Schleife

LinkedIn Learning kostenlos und unverbindlich testen!

Jetzt testen Alle Abonnements anzeigen
Die Foreach-Schleife stellt ein besonderes Schleifenkonstrukt dar und ermöglicht es, über eine große Menge an Objekten zu iterieren.

Transkript

In diesem Abschnitt möchte ich mich einem speziellen Schleifenkonstrukt widmen, das ist die foreach-Schleife. Wir fangen mal wieder an mit einem Int-Array und dann initialisiere ich das auch gleich wieder und weise dem die Werte von 0 bis 10 zu. Dann kann ich jetzt mit der sogenannten foreach-Schleife, Sie haben gesehen, ich habe einfach das Wort "foreach" getippt und habe zweimal die Tab-Taste gedrückt und jetzt bekomme ich hier so ein Code-Snippet von Visual Studio. Ich kann hier etliche Dinge drübertippen, über die Vorschläge, die mir da gemacht worden sind. Aber das interessante daran war ja schon mal, wenn ich dieses "foreach", wenn das tippe, dass mir dann schon mal so etwas angeboten wird wie "var", also das ist der Typ und "itemInCollection" und da sieht man schon, wofür diese foreach-Schleife da ist. Dieses Array ist eine collection an Objekten, in dem Fall an Integers, und ich kann jetzt über alle Values dieses Arrays hinübergehen. Ich kann hier diesen Value ausdrucken und habe alle Werte von 0 bis 9. Es ist eine sehr elegante Schleife. Dieses Konstrukt hat jetzt auch alle Konstrukte, die alle anderen Schleifen auch haben. Ich kann mit "if( (mod2 0)) continue;" die Schleife fortsetzen. Ich behalte da z.B. nur noch die geradzahligen Werte oder ich kann die Schleife abbrechen " 7) break;". Dann läuft die Schleife nur bis sechs. Es ist wie bei allen anderen Schleifen auch, aber es ist sehr gut lesbar. Mit diesem foreach hat es einen speziellen Zusammenhang und zwar, die collection, für die das funktionieren soll, die muss einen bestimmtes Interface implementieren und dieses Interface heißt IEnumerable. Da ist es normalerweise so gedacht, dass der Kompiler einen Code produziert. Er holt sich über dieses IEnumerable einen sogenannten Enumerator und mit Hilfe dieses Enumerators kann er jetzt über alle Werte von dieser Collection iterieren. Dieser Enumerator hat dann so wie token, wie moveNext, getCurrentValue oder sowas, wie man sich eben so einen Iterator vorstellt. Das ist also die normale Vorgehensweise und diese Vorgehensweise müsste man ja eigentlich jetzt hier wieder sehr schön sehen können mit diesem ILDASM-Tool. Bei der Gelegenheit, ich benenne jetzt gerade das mal in eine .dll um wieder, dass ich das mit "Öffnen mit" wieder öffnen kann und wenn ich jetzt hier in diesen Code hereinschaue, dann sehe ich jetzt hier gerade noch dieses writeLine, aber das interessante ist, dass dieser ganze Code weit und breit kein enumerator, kein enumerable oder kein current, kein moveNext oder gar nichts darin hat. All diese Dinge, die ich hier ergezählt habe, scheinen offensichtlich nicht statt zu finden. Der Grund, warum das so ist, liegt in einer Optimierung des Compilers. Der Compiler erkennt selbst, dass die foreach-Schleife über ein Array laufen soll und sagt jetzt, es gibt einen effizienteren Weg, als den inumerator zu verwenden und dieser effizienterer Weg geht über temporär angelegte Indices. Der Compiler tut also alles, um so eine Schleife so effizient zu machen, wie eine normale for-Schleife oder while- oder sonst etwas. Deswegen muss man sich foreach auch überhaupt keine Sorgen machen, ob das effizient ist oder nicht. Man verwendet das einfach, es ist gut lesbar. Bei Arrays ist es genau so schnell, wie wenn man andere Schleifenkonstrukte verwenden würde. Bei sonstigen Kollektionen, die bei IEnumerable zur Verfügung stellen, bei denen wird es verwendet und es funktioniert dann. Es ist vielleicht nicht so ganz effizient wie bei einem Array. Es funktioniert aber trotzdem sehr gut und der Code ist sehr gut lesbar. So weit war es das, in diesem Abschnitt zur foreach-Schleife.

Visual C# 2012 Grundkurs

Schreiben Sie eigene Programme in C# und lernen Sie dazu alle Schlüsselwörter und die meisten Konstrukte kennen, um sicher mit dieser Programmierspreche umzugehen.

7 Std. 1 min (44 Videos)
Derzeit sind keine Feedbacks vorhanden...
 

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!