Computer >> 컴퓨터 >  >> 프로그래밍 >> C#

C#에서 HashSet에 요소 추가하는 방법 – Add() 메서드 사용법

C#의 HashSet<T>는 중복 없이 고유한 요소만 저장하는 컬렉션입니다. HashSet에 새로운 요소를 추가하려면 Add() 메서드를 사용하며, 해당 코드는 다음과 같습니다.

예제 1

using System;
using System.Collections.Generic;

public class Demo {
   public static void Main(String[] args){
      HashSet<string> set1 = new HashSet<string>();
      set1.Add("A");
      set1.Add("B");
      set1.Add("C");
      set1.Add("D");
      set1.Add("E");
      set1.Add("F");
      set1.Add("G");
      set1.Add("H");
      Console.WriteLine("HashSet1의 요소...");
      foreach (string res in set1){
         Console.WriteLine(res);
      }

      HashSet<string> set2 = new HashSet<string>();
      set2.Add("John");
      set2.Add("Jacob");
      set2.Add("Ryan");
      set2.Add("Tom");
      set2.Add("Andy");
      set2.Add("Tim");
      set2.Add("Steve");
      set2.Add("Mark");

      Console.WriteLine("HashSet2의 요소... (Enumerator로 HashSet 순회)");
      HashSet<string>.Enumerator demoEnum = set2.GetEnumerator();
      while (demoEnum.MoveNext()) {
         string res = demoEnum.Current;
         Console.WriteLine(res);
      }

      Console.WriteLine("HashSet1과 HashSet2가 동일한가요? = " + set1.Equals(set2));
   }
}

출력 결과

위 코드를 실행하면 다음과 같은 결과가 출력됩니다.

HashSet1의 요소...
A
B
C
D
E
F
G
H
HashSet2의 요소... (Enumerator로 HashSet 순회)
John
Jacob
Ryan
Tom
Andy
Tim
Steve
Mark
HashSet1과 HashSet2가 동일한가요? = False

참고: HashSet은 해시 기반으로 데이터를 저장하기 때문에 요소의 순서가 보장되지 않습니다. 또한 Equals() 메서드는 두 개체가 동일한 인스턴스인지를 비교하므로, 내용이 다른 set1과 set2를 비교하면 False가 반환됩니다.

예제 2

이번에는 정수형 HashSet에 요소를 추가하고, 두 집합 간의 포함 관계를 확인해 보겠습니다.

using System;
using System.Collections.Generic;

public class Demo {
   public static void Main(String[] args){
      HashSet<int> set1 = new HashSet<int>();
      set1.Add(100);
      set1.Add(200);
      Console.WriteLine("HashSet1의 요소...");
      foreach (int res in set1){
         Console.WriteLine(res);
      }

      HashSet<int> set2 = new HashSet<int>();
      set2.Add(100);
      set2.Add(200);
      Console.WriteLine("HashSet2의 요소...");
      foreach (int res in set2){
         Console.WriteLine(res);
      }

      Console.WriteLine("set1은 set2의 부분 집합인가요? " + set1.IsSubsetOf(set2));
   }
}

출력 결과

위 코드를 실행하면 다음과 같은 결과가 출력됩니다.

HashSet1의 요소...
100
200
HashSet2의 요소...
100
200
set1은 set2의 부분 집합인가요? True

핵심 정리

  • Add(): HashSet에 요소를 추가합니다. 이미 존재하는 요소라면 무시되고 false를 반환합니다.
  • GetEnumerator(): HashSet의 요소를 하나씩 순회할 수 있는 열거자(Enumerator)를 반환합니다.
  • IsSubsetOf(): 한 집합이 다른 집합의 부분 집합인지 여부를 확인합니다.
  • HashSet은 중복 요소를 허용하지 않으므로, 동일한 값을 여러 번 추가해도 하나만 저장됩니다.