Inhaltsverzeichnis
C#-Iterator-Methoden
1. For-Schleife
2. ForEach-Schleife
3. Enumeratoren
Vor- und Nachteile von Iterator
Vorteile
Nachteile
Fazit

Iteratoren in C#

Sep 03, 2024 pm 03:04 PM
c# c# tutorial

Iteratoren sind die Methode, die zum Abrufen der Elemente verwendet wird und die Iteration einzeln in Arrays, Listen usw. durchführt. Die Yield-Return-Anweisung wird mit der Iterator-Methode verwendet, um das Element der Sammlung zurückzugeben, und Yield Break wird dazu verwendet Stoppen Sie die Iteration. Es speichert immer den aktuellen Standort und gibt das nächste Element zurück, wenn die nächste Iteration stattfindet. IEnumerable- und IEnumerator-Objektwerte sind der Rückgabetyp von yield. In diesem Thema lernen wir etwas über Iteratoren in C#.

C#-Iterator-Methoden

Im Folgenden finden Sie Beispiele zur Darstellung der Iteration mit verschiedenen Methoden wie der Schleife, der foreach-Schleife und Enumeratoren.

1. For-Schleife

Beispiel:

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace Iterators
{
class Iterator
{
static void Main(string[] args)
{
for (int i = 1; i <= 7; i++)
{
Console.WriteLine( i);
}
Console.WriteLine("Press Enter Key to Exit..");
Console.ReadLine();
}
}
}
Nach dem Login kopieren

Eine for-Schleife besteht aus drei Anweisungen. Zuerst wird die Initialisierung ausgeführt und dann die Bedingung, die ein boolescher Ausdruck ist. Danach wird der Iterator ausgeführt, um den Wert der initialisierten Variablen zu ändern. Dieser for-Schleifenprozess wird fortgesetzt, bis die Bedingung falsch ist. Wenn sie falsch ist, wird die for-Schleife beendet.

Ausgabe:

Iteratoren in C#

2. ForEach-Schleife

Beispiel:

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace Iterators
{
class Iterator
{
static void Main(string[]args)
{
string[] values = new string[3] { "John", "Bob", "Eva" };
foreach (string name in values)
{
Console.WriteLine(name);
}
Console.WriteLine("Press Enter Key to Exit..");
Console.ReadLine();
}
}
}
Nach dem Login kopieren

Eine foreach-Schleife innerhalb des Schlüsselworts wird zum Iterieren von Elementen verwendet. Das Schlüsselwort wird verwendet, um das Element bei jeder Iteration auszuwählen. Das erste Element wird iteriert und im Element nach dem zweiten Element gespeichert und so weiter. Die Anzahl der foreach-Iterationen hängt von der Anzahl der Elemente in der Sammlung ab. In diesem Beispiel besteht die Sammlung aus drei Werten, sodass die Anzahl der foreach dreimal erfolgt und die Werte angezeigt werden.

Ausgabe:

Iteratoren in C#

3. Enumeratoren

Beispiel #1

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace Iterators
{
class Iterator
{
public static IEnumerable<string> GetArray()
{
int[] array = new int[] { 12, 45, 56, 21, 4 };   // initializing array elements
foreach (var element in array)   // iterating array element
{
yield return element.ToString();   // returning elements
}
}
public static void Main(string[]args)         // main method
{
IEnumerable<string> elements = GetArray();  // storing array element
foreach(var element in elements)
{
Console.WriteLine(element);
Console.ReadKey();
}
}
}
}
Nach dem Login kopieren

In diesem Beispiel gibt es ein Array des Elements, das fünf Elemente enthält, und foreach wird für die Iteration jedes Elements verwendet. Die yield-Anweisung wird verwendet, um nach jeder Iteration ein Element zurückzugeben. Die IEnumerable-Schnittstelle speichert jedes Element, während foreach verwendet wird, um die von der Iteration zurückgegebenen Elemente anzuzeigen. Dieser Iterator wird in einer Methode verwendet.

Ausgabe:

Iteratoren in C#

Beispiel #2

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace Iterators
{
class Iterator
{
public static IEnumerable<string> GetList()
{
List<string> list = new List<string>();
list.Add("Sunday");     // adding elements to list
list.Add("Monday");
list.Add("Tuesday");
list.Add("Wednesday");
list.Add("Thursday");
list.Add("Friday");
list.Add("Saturday");
foreach(var element in list)        //iteration of list elements
{
yield return element;               //returning elements after iteration
}
}
public static void Main(string[]args)    // main method
{
IEnumerable<string> elements = GetList();          // storing elements
foreach(var element in elements)
{
Console.WriteLine(element);
Console.ReadKey();
}
}
}
}
Nach dem Login kopieren

In diesem Beispiel wird die Listensammlung verwendet und die Methode list.add zum Hinzufügen von Elementen zur Liste verwendet. Hier besteht die Liste aus sieben Elementen. Für die Iteration jedes Elements wird ein foreach verwendet. Die yield-Anweisung wird verwendet, um nach jeder Iteration ein Element zurückzugeben. Die IEnumerable-Schnittstelle speichert jedes Element, während foreach verwendet wird, um die aus der Iteration zurückgegebenen Elemente anzuzeigen.

Ausgabe:

Iteratoren in C#

Beispiel #3

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace Iterators
{
class Iterator
{
public static void Main(string[] args)
{
foreach(var item in fib(6))  // iteration of elements
{
Console.WriteLine(item);
}
}
public static IEnumerable<int> fib(int number)
{
int x = 0, y = 1;
// yield return x;
//yield return y;
for (int i=0; i<=number; i++)
{
int temp = x;
x = y;
y = temp + y;
yield return y;        // returning the element
Console.ReadKey();
}
}
}
}
Nach dem Login kopieren

In diesem Beispiel wird die Fibonacci-Reihe generiert und der Iterator in einem Operator verwendet. Die Implementierung davon ist die gleiche wie bei der Verwendung von Iteratoren in einer Methode, außer dass in dieser Operatoren verwendet werden, um Dinge zurückzugeben.

Ausgabe:

Iteratoren in C#

Beispiel #4

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace Iterators
{
class Iterator
{
static void Main()
{
List<int> list = new List<int>();
list.Add(10);          // adding elements to list
list.Add(20);
list.Add(30);
list.Add(40);
list.Add(50);
list.Add(60);
list.Add(70);
List<int>.Enumerator a = list.GetEnumerator();
Write(a);
}
static void Write(IEnumerator<int> a)
{
while (a.MoveNext())
{
int value = a.Current;
Console.WriteLine(value);
Console.ReadKey();
}
}
}
}
Nach dem Login kopieren

Im obigen Beispiel wird die Listensammlung verwendet. Die List.add-Methode wird verwendet, um Elemente zur Liste hinzuzufügen. Diese Liste enthält sieben Elemente. MoveNext und Current werden verwendet. MoveNext verfolgt grundsätzlich, ob das nächste Element vorhanden ist oder nicht, und gibt einen booleschen Wert zurück, der wahr sein kann, wenn das Element verfügbar ist, und falsch, wenn kein Element vorhanden ist, während der Strom zum Abrufen des aktuellen Elements verwendet wird.

Ausgabe:

Iteratoren in C#

Vor- und Nachteile von Iterator

Die Vor- und Nachteile werden im Folgenden erläutert

Vorteile

  1. Iteratoren können als Methode und Get-Accessor verwendet werden.
  2. Es kann als Operator oder als Eigenschaft verwendet werden.
  3. Iteratoren sind leicht zu lesen und leicht zu implementieren.
  4. Iteratoren werden mit den generischen und nicht generischen Sammlungen verwendet.

Nachteile

  1. Iteratoren sind beim Zurückverfolgen einer Liste nicht nützlich.
  2. Da der Iterator die Position speichert, können Sie die iterierte Struktur nicht aktualisieren.
  3. Iteratoren werden im statischen Konstruktor, statischen Finalizer und Instanzkonstruktor nicht verwendet.

Fazit

Um die Wertefolge zu durchlaufen, können Iteratoren mit der foreach-Anweisung verwendet werden. Yield kann mit dem Iterator mehrmals verwendet werden, um die Elemente zurückzugeben. Es ist einfach zu implementieren und sehr praktisch.

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

Erklärung dieser Website
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

Heiße KI -Werkzeuge

Undresser.AI Undress

Undresser.AI Undress

KI-gestützte App zum Erstellen realistischer Aktfotos

AI Clothes Remover

AI Clothes Remover

Online-KI-Tool zum Entfernen von Kleidung aus Fotos.

Undress AI Tool

Undress AI Tool

Ausziehbilder kostenlos

Clothoff.io

Clothoff.io

KI-Kleiderentferner

AI Hentai Generator

AI Hentai Generator

Erstellen Sie kostenlos Ai Hentai.

Heißer Artikel

R.E.P.O. Energiekristalle erklärten und was sie tun (gelber Kristall)
2 Wochen vor By 尊渡假赌尊渡假赌尊渡假赌
Repo: Wie man Teamkollegen wiederbelebt
4 Wochen vor By 尊渡假赌尊渡假赌尊渡假赌
Hello Kitty Island Abenteuer: Wie man riesige Samen bekommt
3 Wochen vor By 尊渡假赌尊渡假赌尊渡假赌

Heiße Werkzeuge

Notepad++7.3.1

Notepad++7.3.1

Einfach zu bedienender und kostenloser Code-Editor

SublimeText3 chinesische Version

SublimeText3 chinesische Version

Chinesische Version, sehr einfach zu bedienen

Senden Sie Studio 13.0.1

Senden Sie Studio 13.0.1

Leistungsstarke integrierte PHP-Entwicklungsumgebung

Dreamweaver CS6

Dreamweaver CS6

Visuelle Webentwicklungstools

SublimeText3 Mac-Version

SublimeText3 Mac-Version

Codebearbeitungssoftware auf Gottesniveau (SublimeText3)

Active Directory mit C# Active Directory mit C# Sep 03, 2024 pm 03:33 PM

Active Directory mit C#

Zugriffsmodifikatoren in C# Zugriffsmodifikatoren in C# Sep 03, 2024 pm 03:24 PM

Zugriffsmodifikatoren in C#

Zufallszahlengenerator in C# Zufallszahlengenerator in C# Sep 03, 2024 pm 03:34 PM

Zufallszahlengenerator in C#

C#-Datenrasteransicht C#-Datenrasteransicht Sep 03, 2024 pm 03:32 PM

C#-Datenrasteransicht

C# StringReader C# StringReader Sep 03, 2024 pm 03:23 PM

C# StringReader

Muster in C# Muster in C# Sep 03, 2024 pm 03:33 PM

Muster in C#

C# StringWriter C# StringWriter Sep 03, 2024 pm 03:23 PM

C# StringWriter

BinaryWriter in C# BinaryWriter in C# Sep 03, 2024 pm 03:22 PM

BinaryWriter in C#

See all articles