Koleksi dalam C#

王林
王林asal
2024-09-03 15:27:48704semak imbas

Koleksi boleh ditakrifkan sebagai jenis kelas yang digunakan dalam C# untuk peruntukan memori dinamik untuk menyimpan dan mengambil kandungan kelas, dan boleh digunakan untuk melaksanakan berbilang operasi. Dalam C#, koleksi berfungsi dalam bentuk 'System.Collections.Generic classes', 'System.Collections. Kelas serentak’ dan ‘Kelas Sistem.Koleksi’. Dari segi corak storan, koleksi meniru struktur data Tatasusunan, dan satu-satunya perbezaan ialah, tidak seperti tatasusunan, koleksi tidak perlu ditakrifkan dengan saiz yang diperlukan.

Terdapat 3 cara untuk bekerja dengan koleksi yang diikuti

  • Sistem.Koleksi.Kelas Generik
  • Sistem.Koleksi.Kelas serentak
  • Kelas Sistem.Koleksi 

Contoh Koleksi dalam C#

Di bawah adalah beberapa contoh pelbagai jenis koleksi dalam C#:-

Contoh #1 – ArrayList

Ia adalah koleksi System.Collections. Ia membolehkan untuk menyimpan data berbilang jenis data dan apabila data ditambah, ia mengembang secara automatik.

Kod:

using System;
using System.Collections;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace ArrayListExample
{
class Program
{
static void Main(string[] args)
{
var data = new ArrayList();   //arraylist collection
data.Add("Demo");             // add element
data.Add(1);
data.Add(5);
data.Add(26);
data.Add(56.4);
data.Add(32);
data.Remove(5);              // remove element
foreach (object obj in data)   // iteration
{
Console.WriteLine(obj);
Console.ReadLine();
}
}
}
}

Dalam contoh di atas, terdapat koleksi jenis ArrayList. Terdapat beberapa elemen dalam ArrayList. Add() dan Remove() ialah kaedah yang digunakan untuk menambah dan mengalih keluar elemen masing-masing daripada koleksi. foreach digunakan untuk lelaran dan memaparkan nilai.

Output:

Koleksi dalam C#

Contoh# 2 – Kami akan menggunakan operasi senarai di sini

Ia ialah koleksi System.Collections. Ruang nama generik.

 Kod:

using System;
using System.Collections;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace Collections
{
class Program
{
static void Main(string[] args)
{
var value = new List<string>();       // list collection
value.Add("Cricket");                       // add element
value.Add("Football");
value.Add("Volleyball");
value.Add("Hockey");
value.Add("Basketball");
value.Add("Tennis");
value.Remove("Football");              // remove element
value.Remove("Tennis");
value.Insert(3, "Badminton");         // insert element
foreach (string st in value)
{
Console.WriteLine(st);
Console.ReadLine();
}
}
}
}

Dalam contoh di atas, koleksi adalah daripada jenis senarai. Kaedah Add() dan Remove() digunakan untuk menambah atau mengalih keluar elemen dari senarai masing-masing. Insert() juga digunakan untuk memasukkan elemen dalam senarai pada indeks yang ditentukan. Foreach digunakan untuk lelaran dan memaparkan nilai.

Output: 

Koleksi dalam C#

Contoh# 3 : Senarai Isih

Ia terdiri daripada kunci dan nilai dalam koleksi.

Kod:

using System;
using System.Collections;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace Collections
{
class Program
{
static void Main(string[] args)
{
var value = new SortedList<string, int>();            // sortedlist collection
value.Add("java", 3);                                               // add element
value.Add("javascript", 4);
value.Add("c-sharp", 5);
value.Add("dotnet", 25);
value.Add("python", 27);
value.Add("typescript", 57);
foreach (var pair in value)
{
Console.WriteLine(pair);
Console.ReadLine();
}
}
}
}

Dalam contoh di atas, koleksi adalah jenis senarai diisih. Terdapat berbilang pasangan kunci dan nilai dalam senarai. Ia pada asasnya mewakili pasangan kunci dan nilai yang diisih.

Output:

Koleksi dalam C#

Contoh# 4 : Senarai terpaut

Ia pada asasnya membenarkan akses berjujukan unsur-unsur.

Kod:

using System;
using System.Collections;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace Collections
{
class Program
{
static void Main(string[] args)
{
var value = new LinkedList<int>();             // linkedlist collection
value.AddLast(13);          // add element
value.AddLast(33);
value.AddLast(23);
value.AddLast(51);
value.AddLast(60);
value.AddFirst(4);
value.AddFirst(6);
LinkedListNode<int> node = value.Find(51);         // find the node
value.AddBefore(node, 40);
foreach (int num in value)
{
Console.WriteLine(num);
Console.ReadLine();
}
}
}
}

Dalam contoh di atas, koleksi adalah daripada jenis Senarai Terpaut. AddLast() digunakan untuk meletakkan elemen dalam kedudukan terakhir manakala AddFirst() digunakan untuk meletakkan elemen pada kedudukan pertama senarai. Senarai terpaut terdiri daripada nod. Find() digunakan untuk mencari nilai dan nilai tempat sebelum itu.

Output :

Koleksi dalam C#

Contoh# 5 – Kamus

Ia terdiri daripada sepasang kunci dan nilai yang unik.

using System;
using System.Collections;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace Collections
{
class Program
{
static void Main(string[] args)
{
var pair = new Dictionary<string, string>();           // dictionary collection
pair.Add("in", "India");                                                // add keys and values
pair.Add("af", "Africa");
pair.Add("us", "United States");
pair.Add("ja", "Japan");
pair.Add("ch", "China");
pair.Add("ca", "Canada");
Console.WriteLine("Keys present in the dictionary:");
var key = new List<string>(pair.Keys);
foreach (string k in key)
{
Console.WriteLine("{0}", k);
}
Console.WriteLine("Values present in the dictionary:");
var value = new List<string>(pair.Values);
foreach (string val in value)
{
Console.WriteLine("{0}", val);
}
Console.ReadLine();
}
}
}

Dalam contoh di atas, koleksi ialah kamus jenis yang mengandungi kunci dan nilainya. Foreach digunakan untuk lelaran kunci dan nilai.

Output 

Koleksi dalam C#

Contoh# 6 – Timbunan

Ia berdasarkan struktur Last-In-First-Out. Elemen terakhir baris gilir ialah yang pertama dialih keluar.

Kod:

using System;
using System.Collections;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace Collections
{
class Program
{
static void Main(string[] args)
{
var value = new Stack<int>();                          // stack collection
value.Push(10);                                                    // adding the element
value.Push(40);
value.Push(33);
value.Push(62);
value.Push(48);
value.Push(21);
value.Push(31);
Console.WriteLine(value.Pop());
Console.WriteLine(value.Peek());
Console.WriteLine();
foreach (int item in value)
{
Console.WriteLine(item);
Console.ReadLine();
}
}
}
}

Dalam contoh di atas, koleksi adalah jenis timbunan. Push() digunakan untuk memasukkan elemen di bahagian atas. Pop() adalah untuk mengalih keluar dan mengembalikan elemen dan Peek() adalah untuk mengembalikan elemen teratas tindanan.

Output:

Koleksi dalam C#

Contoh# 7 – Beratur

Ia berdasarkan struktur First-In-First-Out. Elemen pertama baris gilir ialah yang pertama dialih keluar.

Kod:

using System;
using System.Collections;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace Collections
{
class Program
{static void Main(string[] args)
{
var value = new Queue<string>();                // queue collection
value.Enqueue("Item 1");                               // add element
value.Enqueue("Item 2");
value.Enqueue("Item 3");
value.Enqueue("Item 4");
value.Enqueue("Item 5");
value.Enqueue("Item 6");
value.Enqueue("Item 7");
Console.WriteLine(value.Dequeue());
Console.WriteLine(value.Peek());
Console.WriteLine();
foreach (string num in value)
{
Console.WriteLine(num);
Console.ReadLine();
}
}
}
}

Dalam contoh di atas; koleksi adalah jenis baris gilir. Enqueue() adalah untuk memasukkan elemen pada penghujung baris gilir. Dequeue() adalah untuk mengalih keluar elemen dari permulaan baris gilir. Peek() digunakan untuk memulangkan item.

Output: 

Koleksi dalam C#

Jadi ada banyak cara kita boleh menggunakan koleksi. Koleksi adalah serupa dengan tatasusunan.  Di sini kita tidak perlu menentukan saiz terlebih dahulu tidak seperti tatasusunan.

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

Kenyataan:
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
Artikel sebelumnya:C# MessageBoxArtikel seterusnya:C# MessageBox