Heim  >  Artikel  >  Backend-Entwicklung  >  foreach Beispielcode in C#

foreach Beispielcode in C#

零下一度
零下一度Original
2017-06-24 10:00:112087Durchsuche

foreach kann einige Datentypen durchlaufen. Wie aus der Abbildung ersichtlich ist, muss der zu durchlaufende Datentyp über die öffentliche Methode GetEnumerator verfügen.

Bei der Verwendung von foreach Traversal ist der Inferenztyp var beteiligt. Wenn die generische Version zu diesem Zeitpunkt nicht implementiert ist, handelt es sich immer um den Objekttyp.

Foreach-Traversal kann nur Daten lesen, aber keine Daten ändern. Es kann anhand einer Zeichenfolge erkannt werden, aber das Zeichen, aus dem es besteht, kann nicht geändert werden. (Nur in diesem Szenario).

foreach durchläuft nur vorwärts und liest einen nach dem anderen, ähnlich der Read-Methode von DataReader, die die Datenbank betreibt.

Aus der obigen Analyse ist ersichtlich, dass die IEnumerator-Methode innerhalb der Klasse definiert werden muss, um durchlaufen zu werden. Hier gibt es zwei Lösungen.

Methode 1: Yield-Rückgabeausdruck verwenden; wenn der Rückgabewert IEnumerable ist, bedeutet dies, dass automatisch ein iterierbarer Typ generiert wird.

Wenn der Rückgabewert IEnumerator ist, bedeutet dies, dass automatisch ein Iterator generiert wird. Der Typ IEnumerator ist ein Iterator.

Sie können dies verwenden, um beim Durchlaufen den Wert des Personenarrays im Bild oben abzurufen.

Methode 2 Durch Implementierung der IEnumerable-Schnittstelle

IEunmerable enthält die GetEunmetator-Methode und der Rückgabewert ist der Typ von IEnumerator.

Zu diesem Zeitpunkt ist eine andere Klasse erforderlich, um die IEnumerator-Schnittstelle zu erben, damit ihre Unterklasse zurückgegeben werden kann, um den Zweck zu erreichen.

Implementierungsprozess:

1 Eine Variable vom Typ int muss hinzugefügt werden, um die Position des Index zu markieren. Verwenden Sie hier int position=-1.

2. Fügen Sie die entsprechende Array-Variable hinzu, um das übergebene Array zu erhalten. Hier string[] persion;

3 Das implementierte Curren-Attribut muss die Daten des aktuellen Index zurückgeben. return person[position];

4. Um die MoveNext-Methode zu implementieren, müssen Sie 1 zum Zeiger (Index) hinzufügen und vorwärts gehen. Der Rückgabewert ist ein Bool-Typ, der verwendet wird, um zu bestimmen, ob die Index wurde betrieben.

5. Implementieren Sie die Reset-Methode, die die Reset-Methode ist, und weisen Sie die Position -1 zu.

6.

3. Analyse der Listensammlung

Aus dem Reflexionstool ist ersichtlich, dass die Add-Methode der Liste Die Sammlung besteht darin, interne Elemente hinzuzufügen. Fügen Sie einen Wert hinzu, und dieses Element ist ein Array. Da es generisch ist, wird es als T angezeigt.

Das heißt, es gibt eine solche Variable in der Sammlung, um die hinzugefügten Daten zu speichern, genau wie das oben definierte Array. Auf diese Weise wird die List-Sammlungsklasse mit dem oben genannten

angepasst Die obige Definition dient nur zur Veranschaulichung des Prozesses. Natürlich können Sie die oben genannten Klassen aus geschäftlichen Gründen selbst implementieren und erweitern, indem Sie beispielsweise die statischen Daten

ändern, um sie hinzuzufügen und Filterdaten usw. können je nach Geschäftsanforderungen erweitert werden.

Das obige ist der detaillierte Inhalt vonforeach Beispielcode in C#. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn