vb@rchiv
VB Classic
VB.NET
ADO.NET
VBA
C#
SEPA-Dateien erstellen inkl. IBAN-, BLZ-/Kontonummernprüfung  
 vb@rchiv Quick-Search: Suche startenErweiterte Suche starten   Impressum  | Datenschutz  | vb@rchiv CD Vol.6  | Shop Copyright ©2000-2025
 
zurück

 Sie sind aktuell nicht angemeldet.Funktionen: Einloggen  |  Neu registrieren  |  Suchen

VB.NET - Ein- und Umsteiger
Re: GetEnumerator nur für For-Each-Schleife vorhanden? 
Autor: ModeratorFZelle (Moderator)
Datum: 10.10.10 18:40

Das hast du wohl falsch gelesen, Foreach existiert um Enumeratoren leichter benutzen zu können, nicht andersrum.

Enumeratoren gibt es schon lange, sie sind dafür da um eben gerade nicht mit Listen arbeiten zu müssen, aber trotzdem eine Abfolge zu haben.
In C# gibt es hierfür extra das Yield Keyword, das es einfach ermöglicht soetwas zu implementieren.


 
public IEnumerator<string> EnumerateFile(string fileName )
{
    string line;
    using( StreamReader sr = new StreamReader(fileName))
    {
        while( ( line = sr.ReadLine())!= null)
            yield line;
    }
    yield break;
}
Das würde man jetzt mit ForEach so schreiben
 
Foreach  s as string In EnumerateFile( "maleintestname.txt")
 
Next
Ohne müsste man den Iterator von Hand benutzen.
 
dim enumerator IEnumerator(of string) = EnumerateFile( "maleintestname.txt")
while enumerator.MoveNext()
  dim s as string = enumerator.Current
End While
Im Gegensatz zum ReadAllLines kann man diese version wärend der Abarbeitung auch abbrechen.
Im nächsten VB wird es Yield auch geben.

ForEach macht also das Arbeiten mit Enumeratoren einfacher.

For Schleifen sind auch nur "syntactic sugar" ( zwar alter, aber .... ).
Eigentlich sind sie while schleifen, bei denen man das increment der Übersichtlichkeit oben angibt.
 
For i as Integer = 1 To 100 Step 1
....
Next
Ist eigentlich
 
dim i as Integer = 1
while( i < 100 ) do
....
 
    i = i + 1
end while
Beide For Versionen haben also einen bestimmte Ausrichtung.
Wenn es um Geschwindigkeit geht, ist wenn möglich For vorzuziehen.
alle Nachrichten anzeigenGesamtübersicht  |  Zum Thema  |  Suchen

 ThemaViews  AutorDatum
GetEnumerator nur für For-Each-Schleife vorhanden?2.062keco10.10.10 16:07
Re: GetEnumerator nur für For-Each-Schleife vorhanden?1.408Maas10.10.10 18:18
Re: GetEnumerator nur für For-Each-Schleife vorhanden?1.364keco10.10.10 18:25
Re: GetEnumerator nur für For-Each-Schleife vorhanden?1.341Maas10.10.10 18:30
Re: GetEnumerator nur für For-Each-Schleife vorhanden?1.392ModeratorFZelle10.10.10 18:40
Re: GetEnumerator nur für For-Each-Schleife vorhanden?1.395keco10.10.10 19:57
Re: GetEnumerator nur für For-Each-Schleife vorhanden?1.353ModeratorFZelle10.10.10 20:41
Re: GetEnumerator nur für For-Each-Schleife vorhanden?1.384keco10.10.10 21:45

Sie sind nicht angemeldet!
Um auf diesen Beitrag zu antworten oder neue Beiträge schreiben zu können, müssen Sie sich zunächst anmelden.

Einloggen  |  Neu registrieren

Funktionen:  Zum Thema  |  GesamtübersichtSuchen 

nach obenzurück
 
   

Copyright ©2000-2025 vb@rchiv Dieter Otter
Alle Rechte vorbehalten.
Microsoft, Windows und Visual Basic sind entweder eingetragene Marken oder Marken der Microsoft Corporation in den USA und/oder anderen Ländern. Weitere auf dieser Homepage aufgeführten Produkt- und Firmennamen können geschützte Marken ihrer jeweiligen Inhaber sein.

Diese Seiten wurden optimiert für eine Bildschirmauflösung von mind. 1280x1024 Pixel