Jadual Kandungan
Kaedah Iterators C#
1. Untuk Gelung
2. ForEach Gelung
3. Enumerator
Kebaikan dan Keburukan Iterator
Kelebihan
Keburukan
Kesimpulan

Iterator dalam C#

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

Iterators ialah kaedah yang digunakan untuk mendapatkan semula elemen dan melakukan lelaran satu demi satu dalam tatasusunan, senarai, dll. Pernyataan pulangan hasil digunakan dengan kaedah iterator untuk mengembalikan elemen koleksi dan pemisah hasil digunakan untuk hentikan lelaran. Ia sentiasa menyimpan lokasi semasa dan mengembalikan elemen seterusnya apabila lelaran seterusnya berlaku. Nilai objek IEnumerable dan IEnumerator ialah jenis hasil pulangan. Dalam topik ini, kita akan belajar tentang Iterators dalam C#.

Kaedah Iterators C#

Di bawah ialah contoh untuk menunjukkan lelaran dengan pelbagai kaedah seperti gelung, gelung foreach dan pembanci.

1. Untuk Gelung

Contoh:

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();
}
}
}
Salin selepas log masuk

Gelung A untuk terdiri daripada tiga pernyataan. Pada mulanya, pemulaan dilaksanakan dan kemudian syarat yang merupakan ungkapan Boolean. Selepas iterator itu dilaksanakan untuk menukar nilai pembolehubah yang dimulakan. Proses gelung for ini berterusan sehingga keadaan palsu dan apabila palsu, gelung for ditamatkan.

Output:

Iterator dalam C#

2. ForEach Gelung

Contoh:

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();
}
}
}
Salin selepas log masuk

Gelung foreach bersama dalam kata kunci digunakan untuk mengulang item. Kata kunci digunakan untuk memilih item pada setiap lelaran. Item pertama diulang dan disimpan dalam elemen selepas item kedua itu dan seterusnya. Bilangan lelaran foreach bergantung pada bilangan elemen dalam koleksi. Dalam contoh ini, koleksi terdiri daripada tiga nilai jadi bilangan foreach akan berlaku tiga kali dan memaparkan nilai.

Output:

Iterator dalam C#

3. Enumerator

Contoh #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();
}
}
}
}
Salin selepas log masuk

Dalam contoh ini, terdapat tatasusunan elemen yang mengandungi lima elemen dan foreach digunakan untuk lelaran setiap elemen. Pernyataan hasil digunakan untuk mengembalikan elemen selepas setiap lelaran. Antara muka IEnumerable menyimpan setiap elemen manakala foreach digunakan untuk memaparkan elemen pulangan daripada lelaran. Iterator ini digunakan dalam kaedah.

Output:

Iterator dalam C#

Contoh #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();
}
}
}
}
Salin selepas log masuk

Dalam contoh ini, koleksi senarai digunakan dan kaedah senarai.tambah digunakan untuk menambah elemen dalam senarai. Di sini senarai itu terdiri daripada tujuh elemen. Foreach digunakan untuk lelaran setiap elemen. Pernyataan hasil digunakan untuk mengembalikan elemen selepas setiap lelaran. Antara muka IEnumerable menyimpan setiap elemen manakala foreach digunakan untuk memaparkan elemen pulangan daripada lelaran.

Output:

Iterator dalam C#

Contoh #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();
}
}
}
}
Salin selepas log masuk

Dalam contoh ini, siri Fibonacci dijana dan lelaran digunakan dalam pengendali. Pelaksanaan ini sama seperti kami menggunakan iterator dalam kaedah kecuali dalam operator ini digunakan untuk mengembalikan sesuatu.

Output:

Iterator dalam C#

Contoh #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();
}
}
}
}
Salin selepas log masuk

Dalam contoh di atas, koleksi senarai digunakan. Kaedah senarai.tambah digunakan untuk menambah elemen dalam senarai. Senarai di sini mengandungi tujuh elemen. MoveNext dan Current digunakan. MoveNext pada asasnya menjejak jika elemen seterusnya ada atau tidak dan mengembalikan boolean yang mungkin benar jika elemen tersedia dan palsu jika tiada elemen manakala arus digunakan untuk mendapatkan semula elemen semasa.

Output:

Iterator dalam C#

Kebaikan dan Keburukan Iterator

Kebaikan & keburukan diterangkan di bawah

Kelebihan

  1. Iterators boleh digunakan sebagai kaedah dan mendapatkan aksesor.
  2. Ia boleh digunakan sebagai pengendali atau sebagai harta.
  3. Iterators mudah dibaca dan mudah dilaksanakan.
  4. Iterators digunakan dengan koleksi generik dan bukan generik.

Keburukan

  1. Iterators tidak berguna dalam menjejak ke belakang senarai.
  2. Sebagai iterator menyimpan kedudukan supaya anda tidak boleh mengemas kini struktur yang diulang.
  3. Iterators tidak digunakan dalam pembina statik, pemuktamad statik dan pembina contoh.

Kesimpulan

Jadi untuk melintasi urutan nilai, iterator boleh digunakan dengan pernyataan foreach. Hasil boleh digunakan beberapa kali dengan iterator untuk mengembalikan elemen. Ia mudah untuk dilaksanakan dan agak berguna.

Atas ialah kandungan terperinci Iterator dalam C#. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn

Alat AI Hot

Undresser.AI Undress

Undresser.AI Undress

Apl berkuasa AI untuk mencipta foto bogel yang realistik

AI Clothes Remover

AI Clothes Remover

Alat AI dalam talian untuk mengeluarkan pakaian daripada foto.

Undress AI Tool

Undress AI Tool

Gambar buka pakaian secara percuma

Clothoff.io

Clothoff.io

Penyingkiran pakaian AI

Video Face Swap

Video Face Swap

Tukar muka dalam mana-mana video dengan mudah menggunakan alat tukar muka AI percuma kami!

Artikel Panas

<🎜>: Bubble Gum Simulator Infinity - Cara Mendapatkan dan Menggunakan Kekunci Diraja
4 minggu yang lalu By 尊渡假赌尊渡假赌尊渡假赌
Nordhold: Sistem Fusion, dijelaskan
4 minggu yang lalu By 尊渡假赌尊渡假赌尊渡假赌
Mandragora: Whispers of the Witch Tree - Cara Membuka Kunci Cangkuk Bergelut
3 minggu yang lalu By 尊渡假赌尊渡假赌尊渡假赌

Alat panas

Notepad++7.3.1

Notepad++7.3.1

Editor kod yang mudah digunakan dan percuma

SublimeText3 versi Cina

SublimeText3 versi Cina

Versi Cina, sangat mudah digunakan

Hantar Studio 13.0.1

Hantar Studio 13.0.1

Persekitaran pembangunan bersepadu PHP yang berkuasa

Dreamweaver CS6

Dreamweaver CS6

Alat pembangunan web visual

SublimeText3 versi Mac

SublimeText3 versi Mac

Perisian penyuntingan kod peringkat Tuhan (SublimeText3)

Topik panas

Tutorial Java
1670
14
Tutorial PHP
1276
29
Tutorial C#
1256
24
Direktori Aktif dengan C# Direktori Aktif dengan C# Sep 03, 2024 pm 03:33 PM

Panduan untuk Active Directory dengan C#. Di sini kita membincangkan pengenalan dan cara Active Directory berfungsi dalam C# bersama-sama dengan sintaks dan contoh.

Penjana Nombor Rawak dalam C# Penjana Nombor Rawak dalam C# Sep 03, 2024 pm 03:34 PM

Panduan untuk Penjana Nombor Rawak dalam C#. Di sini kita membincangkan cara Penjana Nombor Rawak berfungsi, konsep nombor pseudo-rawak dan selamat.

Paparan Grid Data C# Paparan Grid Data C# Sep 03, 2024 pm 03:32 PM

Panduan untuk Paparan Grid Data C#. Di sini kita membincangkan contoh cara paparan grid data boleh dimuatkan dan dieksport daripada pangkalan data SQL atau fail excel.

Faktorial dalam C# Faktorial dalam C# Sep 03, 2024 pm 03:34 PM

Panduan untuk Faktorial dalam C#. Di sini kita membincangkan pengenalan kepada faktorial dalam c# bersama-sama dengan contoh dan pelaksanaan kod yang berbeza.

Perbezaan antara multithreading dan asynchronous C# Perbezaan antara multithreading dan asynchronous C# Apr 03, 2025 pm 02:57 PM

Perbezaan antara multithreading dan asynchronous adalah bahawa multithreading melaksanakan pelbagai benang pada masa yang sama, sementara secara tidak sengaja melakukan operasi tanpa menyekat benang semasa. Multithreading digunakan untuk tugas-tugas yang berintensifkan, sementara asynchronously digunakan untuk interaksi pengguna. Kelebihan multi-threading adalah untuk meningkatkan prestasi pengkomputeran, sementara kelebihan asynchronous adalah untuk tidak menghalang benang UI. Memilih multithreading atau asynchronous bergantung kepada sifat tugas: tugas-tugas intensif pengiraan menggunakan multithreading, tugas yang berinteraksi dengan sumber luaran dan perlu menyimpan respons UI menggunakan asynchronous.

Corak dalam C# Corak dalam C# Sep 03, 2024 pm 03:33 PM

Panduan kepada Corak dalam C#. Di sini kita membincangkan pengenalan dan 3 jenis Corak teratas dalam C# bersama-sama dengan contoh dan pelaksanaan kodnya.

Nombor Perdana dalam C# Nombor Perdana dalam C# Sep 03, 2024 pm 03:35 PM

Panduan Nombor Perdana dalam C#. Di sini kita membincangkan pengenalan dan contoh nombor perdana dalam c# bersama dengan pelaksanaan kod.

Cara menukar format XML Cara menukar format XML Apr 03, 2025 am 08:42 AM

Terdapat beberapa cara untuk mengubah format XML: mengedit secara manual dengan editor teks seperti Notepad; Memformat secara automatik dengan alat pemformatan XML dalam talian atau desktop seperti XMLBeAutifier; Tentukan peraturan penukaran menggunakan alat penukaran XML seperti XSLT; atau menghuraikan dan beroperasi menggunakan bahasa pengaturcaraan seperti Python. Berhati -hati apabila mengubahsuai dan membuat sandaran fail asal.

See all articles