C#의 HashSet<T>

2023. 10. 19. 11:19·C#
반응형

C#에서 HashSet<T>는 중복되지 않는 요소를 저장하는 컬렉션입니다. HashSet<T>는 해시 테이블을 사용하여 요소를 저장하기 때문에, 요소를 빠르게 검색할 수 있습니다.

 

HashSet<T>의 선언

HashSet<T>는 다음과 같이 선언할 수 있습니다.

C#

HashSet<T> set;

여기서 T는 HashSet<T>에 저장할 요소의 형식입니다.

 

HashSet<T>의 초기화

HashSet<T>는 다음과 같이 초기화할 수 있습니다.

set = new HashSet<T>();

또는, 다음과 같이 요소를 사용하여 초기화할 수 있습니다.

set = new HashSet<T>(new List<T>());

HashSet<T>에 요소 추가

HashSet<T>에 요소를 추가하려면 Add() 메서드를 사용합니다.

set.Add(new T());

또는, 다음과 같이 리터럴을 사용하여 요소를 추가할 수 있습니다.

set.Add(1);

 

HashSet<T>에서 요소 제거

HashSet<T>에서 요소를 제거하려면 Remove() 메서드를 사용합니다.

set.Remove(new T());

또는, 다음과 같이 리터럴을 사용하여 요소를 제거할 수 있습니다.

set.Remove(1);

HashSet<T>의 요소 검색

HashSet<T>에서 요소를 검색하려면 Contains() 메서드를 사용합니다.

bool contains = set.Contains(new T());

또는, 다음과 같이 리터럴을 사용하여 요소를 검색할 수 있습니다.

bool contains = set.Contains(1);

HashSet<T>의 요소 순회

HashSet<T>의 요소를 순회하려면 foreach 루프를 사용할 수 있습니다.

foreach (T item in set) {

    // ...

}

 

HashSet<T>의 메서드

HashSet<T>는 다음과 같은 메서드를 제공합니다.

  • Add(T item): 요소를 추가합니다.
  • Remove(T item): 요소를 제거합니다.
  • Contains(T item): 요소가 포함되어 있는지 확인합니다.
  • Count: 요소의 개수를 반환합니다.
  • IsEmpty: 컬렉션이 비어 있는지 확인합니다.
  • ToArray(): T[]: 요소를 배열로 반환합니다.

 

HashSet<T>의 예제

다음은 HashSet<T>를 사용하는 예제입니다.

using System;



public class Example

{

    public static void Main(string[] args)

    {

        // HashSet<T>를 생성합니다.

        HashSet<int> numbers = new HashSet<int>();



        // 요소를 추가합니다.

        numbers.Add(1);

        numbers.Add(2);

        numbers.Add(3);



        // 요소를 검색합니다.

        bool contains = numbers.Contains(2);

        Console.WriteLine(contains); // true



        // 요소를 제거합니다.

        numbers.Remove(2);



        // 요소를 순회합니다.

        foreach (int number in numbers) {

            Console.WriteLine(number);

        } // 1 3



        // 요소의 개수를 확인합니다.

        int count = numbers.Count;

        Console.WriteLine(count); // 2

    }

}
위 코드는 다음과 같은 결과를 출력합니다.
true
1
3
2

 

결론

HashSet<T>는 중복되지 않는 요소를 저장하는 효율적인 컬렉션입니다. HashSet<T>는 해시 테이블을 사용하여 요소를 저장하기 때문에, 요소를 빠르게 검색할 수 있습니다.

저작자표시 비영리 변경금지 (새창열림)

'C#' 카테고리의 다른 글

C#의 정적 타입 정보 연산자  (0) 2023.10.26
C# 람다 식 : 캡처  (0) 2023.10.20
C#의 char 자료형  (0) 2023.10.18
코드 실행시간 측정 : Stopwatch  (3) 2023.10.17
C#에서 입출력을 다루는 방법  (0) 2023.10.13
'C#' 카테고리의 다른 글
  • C#의 정적 타입 정보 연산자
  • C# 람다 식 : 캡처
  • C#의 char 자료형
  • 코드 실행시간 측정 : Stopwatch
코샵
코샵
나의 코딩 일기장
    반응형
  • 코샵
    끄적끄적 코딩 공방
    코샵
    • 분류 전체보기 (725)
      • 스마트팜 (0)
      • 상품 추천 (223)
      • MongoDB (4)
      • 하드웨어 (17)
      • 일기장 (4)
      • 파이썬 (130)
        • Basic (41)
        • OpenCV (8)
        • Pandas (15)
        • PyQT (3)
        • SBC(Single Board Computer) (1)
        • 크롤링 (14)
        • Fast API (29)
        • Package (6)
      • Unity (138)
        • Tip (41)
        • Project (1)
        • Design Pattern (8)
        • Firebase (6)
        • Asset (2)
      • Linux (4)
      • C# (97)
        • Algorithm (11)
        • Window (7)
      • TypeScript (51)
        • CSS (10)
      • Git (11)
      • SQL (5)
      • Flutter (10)
        • Tip (1)
      • System (1)
      • BaekJoon (6)
      • Portfolio (2)
      • MacOS (1)
      • 유틸리티 (1)
      • 서비스 (6)
      • 자동화 (3)
      • Hobby (10)
        • 물생활 (10)
        • 식집사 (0)
  • 인기 글

  • 태그

    programmerlife
    devlife
    unity
    쇼핑몰리뷰
    Python
    codingcommunity
    리뷰이관
    programming101
    셀레니움
    카페24리뷰이관
    스크립트 실행 순서
    카페24리뷰
    appdevelopment
    learntocode
    rtsp
    리뷰관리
    파이썬
    cv2
    상품 리뷰 크롤링
    유니티
    codingtips
    C#
    list
    긴유통기한우유
    스마트스토어리뷰
    ipcamera
    라떼우유
    스크립트 실행
    믈레코비타멸균우유
    리스트
  • 최근 글

  • hELLO· Designed By정상우.v4.10.3
코샵
C#의 HashSet<T>
상단으로

티스토리툴바