[C#]HashSet 集合型別

  • 28657
  • 0
  • C#
  • 2011-01-25

HashSet 集合型別

image

Namespace

System.Collections.Generic

 

Assemble

System.Core (在 System.Core.dll 中)

 

需求

.NET Framework 3.5(含)以上

 

功能

  • 以數學集合 (Set) 模型為基礎,並提供高效能的集合 (Set) 運算,類似存取 Dictionary<(Of <(TKey, TValue>)>)Hashtable 集合 (Collection) 的索引鍵。簡而言之,您可以將 HashSet<(Of <(T>)>) 類別視為沒有值的 Dictionary<(Of <(TKey, TValue>)>) 集合 (Collection)。
  • 不會排序,也無法包含重複的項目。如果對應用程式來說,排序和項目重複比效能更重要,請使用 List<(Of <(T>)>) 類別配合 Sort 方法。
  • 提供許多數學集合 (Set) 運算,例如集合 (Set) 相加 (結合) 以及集合 (Set) 相減。

 

簡易範例

	using System;
	using System.Collections.Generic;
	using System.Linq;
	using System.Text;
	 
	namespace ConsoleApplication5
	{
	class Program
	{
	static void Main(string[] args)
	{
	HashSet<Encoding> encodingHashset = new HashSet<Encoding>();
	encodingHashset.Add(Encoding.ASCII);
	encodingHashset.Add(Encoding.Unicode);
	encodingHashset.Add(Encoding.UTF32);
	encodingHashset.Add(Encoding.ASCII);
	foreach (Encoding e in encodingHashset)
	{
	Console.WriteLine(e.WebName);
	}
	}
	}
	}

 

 

執行結果如下:

image

由此範例可看到Hashset會自動忽略重覆的資料。

 

Reference

 

image