C# - 일반화 Dictionary

양규빈·2023년 7월 25일
0

C# 공부

목록 보기
20/30

개요

키-값 쌍(Key-Value Pair)으로 데이터를 저장하는 자료구조 중 하나다.
각 키는 고유한 식별자로 사용되며, 각 키에 대응하는 값이 연결되어 저장된다. 따라서 특정 키를 통해 해당 키에 대응하는 값을 검색하거나 추가, 수정, 삭제할 수 있다.

System.Collections.Generic 네임스페이스에 포함되어 있다.

코드 및 세부 설명

기본 사용

위 코드에서 딕셔너리는 Dictionary<TKey, TValue> 형태로 사용되며, 각 키-값 쌍은 중괄호 {}를 사용하여 추가 및 수정할 수있다.

myDictionary[key] 형태로 사용하며, 해당 키에 대응하는 값을 반환한다.

또한, TryGetValue 메서드를 사용하여 특정 키로 값 조회 시 예외 처리를 할 수 있다.

만약 조회하려는 키가 존재하지 않을 경우 TryGetValue 메서드는 false를 반환하고, 해당 키의 값은 디폴트 값을 가지게 된다.

일반화 Dictionary는 자주 사용되는 자료구조로, 키를 통해 값을 빠르게 검색할 수 있어 많은 상황에서 유용하게 활용된다.

정렬과 출력

딕셔너리는 Sort()와 Find() 함수 기능을 제공하지 않는다.
위와 같은 기능을 사용하는 가장 편리한 방법은 Dictionary 타입의 자료를 List에 넣어서 Sort하는 것이다.

List로 Dictionary 스트럭쳐를 받아서 List의 맴버 함수를 이용한다.
코드는 위와 같다.

전체 값을 출력하는 것은 key와 value를 이용하면 된다.

Sort를 위한 IComparer를 생성한다.
KeyValuePair 스트럭쳐를 파라미터로 받아서, key값의 크기에 따라 비교하여 return한다.
해당 함수를 기준으로 하여, 데이터들이 Sort된다.

Key값이 아닌, Value를 기준으로도 정렬이 가능하다.

sort에 들어갈 IComparer로 위 클래스를 넣으면 된다.

혹은 OrderBy를 이용하는 방법도 존재한다.

Print 함수에서 전체 값을 출력하거나 key값 혹은 value 값만 출력하도록 코드를 구현할 수도 있다.

Key는 모든 킷값들을 가지며, Values는 모든 Value값들을 가진다.

데이터 복사

keys를 이용하여 킷값만 갖는 리스트 생성.
values를 이용하여 벨류값만 갖는 리스트 생성
GeEnumerator – MoveNext를 이용한 전체 값 탐색.

profile
훌륭한 개발자를 꿈꾸는 중입니다

1개의 댓글

comment-user-thumbnail
2023년 7월 25일

유익한 글이었습니다.

답글 달기