Programing/C#

Dictionary VS KeyValuePair : C#의 맵

2023. 12. 14. 23:03
목차
  1. Dictionary란 ?
  2. KeyValuePair란?
  3. 언제 어떤 클래스를 사용해야 할까?

 

씨샵로고

안녕하세요 인터럽트입니다.

이번에는 C#에서 정말 유용하게 사용하는 기능인 Dictionary 와 KeyValuePair의 기능과 차이점에 대해 정리해 보려고 합니다. 제가 요즘 java를 공부 중인데 자바에서의 맵과 같은 기능인 거 같아요

 

반응형

Dictionary란 ?

Dictionary<TKey, TValue>

 

Dictionary클래스는 키-값 쌍을 저장하고 관리하기 위한 자료구조입니다.  hash table을 기반으로 하며, 각 키는 고유해야 합니다. 이로 인해 빠른 검색 속도를 제공하며, 키를 기반으로 한 인덱싱을 통해 값에 빠르게 액세스 할 수 있습니다. 

Dictionary<string, int> myDictionary = new Dictionary<string, int>();
myDictionary.add("one", 1);
myDictionary.add("two", 2);

int value = myDictionary["one"];	//value는 1로 초기화 된다.

 

Dictionary를 사용하면 중복된 키를 허용하지 않아서 데이터의 일관성을 유지할 수 있습니다. 또한 해시 기반의 구조로 인해 대량의 데이터에도 뛰어난 성능을 보인다고 하네요

 

KeyValuePair란?

KeyValuePair는 단일 키-값 쌍을 표현하는 데 사용하는 구조체입니다. 주로  Dictionary의 열거자나 LINQ쿼리 결과 등에서 사용됩니다. 읽기 전용이며 수정할 수 없는 특징을 가지고 있어, 데이터를 읽을 때만 사용할 수 있습니다.

KeyValuePair<string, int> myPair = new KeyValuePair<string, int>("one", 1);
string key = myPair.key;	//key변수에는 "one"이 저장됨
int value = myPair.value;	//value변수에는 1이 저장됨

 

반응형

 

언제 어떤 클래스를 사용해야 할까?

단일 데이터를 키-값으로 표현해야 할 때는 KeyValuePair 클래스가 효율적입니다.

하지만 단일 값이기 때문에 복수개의 데이터를 다룰 때는 부적합하다는 단점이 있습니다.

 

복수개의 데이터를 다룰 때는 Dictionary 클래스를 사용해 줍니다.

KeyValuePair와 다르게 Dictionary는 Collection처럼 계속 add 메소드로 추가할 수 있습니다.

 

둘 다 키-값 쌍으로 표현한다는 공통점은 있지만 다룰 수 있는 데이터의 수에서 차이가 있네요

적절하게 사용해서 개발하면 참 유용할 것 같습니다.

 

오늘도 읽어주셔서 감사합니다.

  1. Dictionary란 ?
  2. KeyValuePair란?
  3. 언제 어떤 클래스를 사용해야 할까?
'Programing/C#' 카테고리의 다른 글
  • LINQ : SKIP & TAKE 기능 정리, 페이징 처리할 때 유용한 기능
  • 정적멤버 vs 비정적멤버 개념정리
  • [컨벤션]C# 컨벤션(코딩 스타일)
  • C# 헷갈리는 문법정리, const/readonly/protected
Interrrupt
Interrrupt
프로그래밍, 개발, IT, 일상
Interrrupt
일상의 인터럽트
Interrrupt
전체
오늘
어제
반응형
  • 분류 전체보기 (78)
    • Programing (26)
      • C# (12)
      • WPF-FrameWork (5)
      • JavaScript (7)
      • React-FrameWork (2)
    • DB (14)
      • 오라클 (14)
    • ETC (5)
      • 기타 (4)
      • 자료구조 (1)
      • 마크업 (1)
    • Tools (4)
    • 토이프로젝트 (4)
      • C# WPF로 자동매매프로그램 만들기 (4)
    • OS (2)
      • 리눅스 (1)
      • Window11 (1)
    • CS지식 (8)
      • 프론트엔드 (4)
      • 백엔드 (4)
    • 일상 (12)
      • 취미 (3)
      • 맛집 (9)
hELLO · Designed By 정상우.
Interrrupt
Dictionary VS KeyValuePair : C#의 맵
상단으로

티스토리툴바

개인정보

  • 티스토리 홈
  • 포럼
  • 로그인

단축키

내 블로그

내 블로그 - 관리자 홈 전환
Q
Q
새 글 쓰기
W
W

블로그 게시글

글 수정 (권한 있는 경우)
E
E
댓글 영역으로 이동
C
C

모든 영역

이 페이지의 URL 복사
S
S
맨 위로 이동
T
T
티스토리 홈 이동
H
H
단축키 안내
Shift + /
⇧ + /

* 단축키는 한글/영문 대소문자로 이용 가능하며, 티스토리 기본 도메인에서만 동작합니다.