順番に並んでいない要素の一意のコレクションは HashSet
C# の HashSet の構文
HashSet<Type_of_hashset> Hashset_name = new HashSet<Type_of_hashset>();
上記の構文は C# の HashSet を表します。ハッシュセットの種類は大文字の T で表すこともできます。
C# のハッシュセットは、順序のない要素の一意のコレクションです。これは名前空間 Systems.Collections.Generic の下にあり、コレクション内に重複が必要ない場合に使用されます。つまり、コレクションへの重複の挿入を回避し、HashSet のパフォーマンスを比較します。 HashSet は、HashSet が提供するリスト セット操作と比較して、高いパフォーマンスを提供します。ハッシュセットの仕組みを理解するために、C# で簡単なハッシュセット プログラムを作成することから始めましょう。
コード:
using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; namespace HashSet { class Programcheck { static void Main(string[] args) { HashSet < string > nameslist = new HashSet < string > { "Shobha", "Shivakumar", "Shardha" }; foreach(var nam in nameslist) { Console.WriteLine(nam); } Console.ReadKey(); } } }
上記のプログラムでは、文字列型の単純なハッシュセットが作成されます。文字列 Shobha、Shivakumar、および Shardha が、文字列型の作成されたハッシュセットに追加されます。上記のプログラムの出力を以下のスナップショットに示します。
すでに説明したように、ハッシュセットではコレクションに重複した要素を追加することはできません。上記で作成した文字列型のハッシュセットに重複要素を追加して、プログラムの出力を理解してみましょう。次に、add メソッドを使用して要素をコレクションに追加します。
コード:
using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; namespace HashSet { class Programcheck { static void Main(string[] args) { HashSet < string > nameslist = new HashSet < string > { "Shobha", "Shivakumar", "Shardha" }; nameslist.Add("Shobha"); //collection cannot contain duplicate elements. foreach(var nam in nameslist) { Console.WriteLine(nam); } Console.ReadKey(); } } }
上記のプログラムでは、文字列型の単純なハッシュセットが作成されます。次に、文字列 Shobha、Shivakumar、および Shardha が、文字列型の作成されたハッシュセットに追加されます。 add メソッドを使用して作成されたハッシュセットに重複文字列 Shobha を追加しようとすると、エラーは表示されませんが、重複文字列は追加されず、出力でも同じことがわかります。上記のプログラムの出力を以下のスナップショットに示します。
C#にはハッシュセットに存在するメソッドとのUnionというメソッドがあります。これは、2 つのコレクションに存在する要素を、呼び出される単一のコレクションに結合するために使用されます。以下のプログラムを考えてみましょう。
コード:
using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; namespace HashSet { class Programcheck { static void Main(string[] args) { HashSet < string > nameslist = new HashSet < string > { "Shobha", "Shivakumar", "Shardha" }; HashSet < string > nameslist1 = new HashSet < string > { "Shobha", "Shivakumar", "Shardha", "Ravi", "Nagu" }; nameslist.UnionWith(nameslist1); foreach(var nam in nameslist) { Console.WriteLine(nam); } Console.ReadKey(); } } }
上記のプログラムでは、文字列型の単純なハッシュセットが 2 つ作成されます。まず、文字列 Shobha、Shivakumar、および Shardha が文字列型の最初のハッシュセットに追加されます。次に、文字列 Shobha、Shivakumar、Shardha、Ravi、および Nagu が型文字列の 2 番目のハッシュセットに追加されます。次に、メソッド is hashset で Union を利用して、最初のハッシュセットと 2 番目のハッシュセットの両方の要素を結合します。上記のプログラムの出力を以下のスナップショットに示します。
C#にはハッシュセットに存在するメソッドにIntersectというメソッドがあります。これは、2 つのコレクションに共通して存在する要素を、呼び出される単一のコレクションに結合するために使用されます。以下のプログラムを考えてみましょう。
コード:
using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; namespace HashSet { class Programcheck { static void Main(string[] args) { HashSet < string > nameslist = new HashSet < string > { "Shobha", "Shivakumar", "Shardha" }; HashSet < string > nameslist1 = new HashSet < string > { "Shobha", "Shivakumar", "Shardha", "Ravi", "Nagu" }; nameslist.IntersectWith(nameslist1); foreach(var nam in nameslist) { Console.WriteLine(nam); } Console.ReadKey(); } } }
上記のプログラムでは、文字列型の単純なハッシュセットが 2 つ作成されます。まず、文字列 Shobha、Shivakumar、および Shardha が文字列型の最初のハッシュセットに追加されます。次に、文字列 Shobha、Shivakumar、Shardha、Ravi、および Nagu が型文字列の 2 番目のハッシュセットに追加されます。次に、メソッド is hashset との intersecting を使用して、最初のハッシュセットと 2 番目のハッシュセットの両方の共通要素を結合します。上記のプログラムの出力を以下のスナップショットに示します。
C#のハッシュセットにメソッドが存在するExceptというメソッドがあります。これは、呼び出されたコレクションを除く 2 つのコレクションすべてに存在するすべての要素を削除するために使用されます。以下のプログラムを考えてみましょう。
コード:
using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; namespace HashSet { class Programcheck { static void Main(string[] args) { HashSet < string > nameslist = new HashSet < string > { "Shobha", "Shivakumar", "Shardha" }; HashSet < string > nameslist1 = new HashSet < string > { "Shobha", "Shivakumar", "Shardha", "Ravi", "Nagu" }; nameslist1.ExceptWith(nameslist); foreach(var nam in nameslist1) { Console.WriteLine(nam); } Console.ReadKey(); } } }
上記のプログラムでは、文字列型の単純なハッシュセットが 2 つ作成されます。まず、文字列 Shobha、Shivakumar、および Shardha が文字列型の最初のハッシュセットに追加されます。次に、文字列 Shobha、Shivakumar、Shardha、Ravi、および Nagu が型文字列の 2 番目のハッシュセットに追加されます。次に、ハッシュセットのメソッドで Except を使用して、呼び出されたコレクションを除くすべてのコレクションに存在するすべての要素を削除します。 上記のプログラムの出力を以下のスナップショットに示します。
Given below are the examples of C# HashSet:
C# program to illustrate the creation of a hashset and adding elements to the hashset.
Code:
using System; using System.Collections.Generic; class Hashset { // Calling the main method public static void Main() { // An hashset of even numbers is created HashSet<int> even = new HashSet<int>(); // Adding the elements in to the hashset for (int i = 0; i < 5; i++) { even.Add(2 * i); } // Printing the elements in the hashset foreach(int j in even) { Console.WriteLine(j); } } }
Output:
C# program to illustrate contains method in a hashset.
Code:
using System; using System.Collections.Generic; class hashset { // Calling the main method public static void Main() { // An hashset consisting of strings is created HashSet<string> cl = new HashSet<string>(); // Elements are inserted into the hashset cl.Add("Shobha"); cl.Add("Shivakumar"); cl.Add("Shardha"); cl.Add("Ravi"); // Using the contains method to check if an element is present in the collection if (cl.Contains("Shobha")) Console.WriteLine("The element specified is present"); else Console.WriteLine("The element specified is not present"); } }
Output:
以上がC# ハッシュセットの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。