首頁  >  文章  >  後端開發  >  C# 中的集合

C# 中的集合

王林
王林原創
2024-09-03 15:27:48553瀏覽

集合可以定義為C#中使用的一種類,用於動態記憶體分配,用於儲存和獲取類別的內容,並且可以用於執行多種操作。在 C# 中,集合以「System.Collections.Generic 類別」、「System.Collections」的形式運作。並發類別」和「System.Collections 類別」。在儲存模式方面,集合複製了陣列的資料結構,唯一的差異是,與陣列不同,集合不需要定義所需的大小。

有 3 種使用集合的方法,如下圖

  • System.Collections.Generic 類別
  • System.Collections.Concurrent 類別
  • System.Collections 類別

C# 中集合的範例

以下是 C# 中各種類型集合的一些範例:-

範例 #1 – ArrayList

它是 System.Collections 的集合。它允許保存多種數據類型的數據,並且隨著數據的添加,它會自動擴展。

代碼:

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();
}
}
}
}

在上面的範例中,有一個ArrayList類型的集合。 ArrayList中有一些元素。 Add()和Remove()分別是用來新增和刪除元素到集合中的元素。 foreach 用於迭代並顯示值。

輸出:

C# 中的集合

範例#2 – 我們將在這裡使用清單操作

它是 System.Collections.Generic 命名空間的集合。

 代碼:

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();
}
}
}
}

在上面的例子中,集合是列表類型的。 Add() 和Remove() 方法分別用於在清單中新增或刪除元素。 Insert() 也用於將元素插入清單中定義的索引處。 Foreach 用於迭代並顯示值。

輸出:

C# 中的集合

範例# 3:排序清單

它由集合中的鍵和值組成。

代碼:

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();
}
}
}
}

在上面的範例中,集合的類型是sortedlist。列表中有多對鍵和值。它基本上代表了排序後的鍵和值對。

輸出:

C# 中的集合

範例# 4:鍊錶

它基本上允許順序存取元素。

代碼:

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();
}
}
}
}

在上面的範例中,集合的類型是Linkedlist。 AddLast() 用於將元素放置在清單的最後一個位置,而 AddFirst() 用於將元素放置在清單的第一個位置。鍊錶由一個節點組成。 Find() 用於尋找值並在其前面放置值。

輸出:

C# 中的集合

範例# 5 – 字典

它由唯一的一對鍵和值組成。

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();
}
}
}

在上面的範例中,集合是字典類型,其中包含鍵及其值。 Foreach 用於鍵和值的迭代。

輸出

C# 中的集合

範例#6 – 堆疊

它是基於後進先出結構。隊列的最後一個元素是第一個被刪除的元素。

代碼:

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();
}
}
}
}

在上面的例子中,集合的類型是stack。 Push() 用於將元素插入到頂部。 Pop() 用於移除並傳回元素,Peek() 用於傳回棧頂元素。

輸出:

C# 中的集合

範例#7 – 佇列

它是基於先進先出結構。佇列的第一個元素是第一個被刪除的元素。

代碼:

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();
}
}
}
}

在上面的例子中;集合是隊列類型。 Enqueue()用於在佇列末尾插入元素。 Dequeue() 用於從佇列開頭刪除元素 Peek() 用於返回專案。

輸出:

C# 中的集合

所以我們可以用多種方式使用這些集合。集合類似數組。  與陣列不同,這裡我們不需要預先定義大小。

以上是C# 中的集合的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
上一篇:C# 訊息框下一篇:C# 訊息框