C# 딕셔너리 여러가지

사전은 키와 값으로 구성된 데이터 구조입니다. 데이터 구조당 하나의 키만 있을 수 있습니다.

C#에서는 사전과 관련된 다양한 항목이 함께 그룹화되었습니다.

..


콘텐츠 정리를 위한 사전친구

1. 키 수집, 가치 수집

이 컬렉션을 가진 사람들

사전이 있는 생성자를 사용하여 생성할 수 있습니다.

.

KeyCollection의 경우 생성자에서 사용하는 딕셔너리의 키 값을 담고 있는 데이터 구조로 생성된다.

사전은 중복 키 값을 허용하지 않기 때문에 KeyCollection은 사전 키 값만 수집하여 생성됩니다.

그 안에 있는 콘텐츠에도 중복 값이 ​​없습니다.

.

반대로 ValueCollection은 키 값이 아닌 값 값만 수집하여 생성됩니다.

Value의 경우 복제가 허용되므로 내용의 중복이 있을 수 있습니다.

기본 사전, KeyCollection 및 ValueCollection의 내용을 인쇄합니다.

2. 정렬된 사전

이름순으로 정렬된 받아쓰기입니다

생성은 일반 사전과 같이 매개변수 없이 수행할 수 있습니다.

일반 사전을 사용하여 만들 수도 있습니다.

.

키/값 쌍을 사용하는 데이터 구조는 C++ 맵입니다.

이 C++에서 카드는 기본적으로 삽입부터 키 값의 오름차순으로 정렬되어 삽입됩니다.

그러나 기본 C# 사전은 삽입 시 정렬하지 않으며 별도의 정렬이 필요합니다.

SortedDictionary를 사용하면 키 값을 기준으로 삽입을 정렬할 수 있습니다.

.

SortedDictionary도 일반 사전과 동일하며 KeyCollection과 ValueCollection이 있습니다.

이러한 모음은 일반 사전 모음과 유사합니다.

.

복사해서 붙여넣기가 번거롭기 때문에 계속 사용할 사전을 제거했습니다.


SortedDictionary의 Key, ValueCollection은 일반 사전을 사용할 수 없습니다(반대의 경우도 마찬가지).

다음은 SortedDictionary와 해당 Ket 및 ValueCollection 콘텐츠의 출력입니다.

키 값이 AZ 순서로 정렬된 것을 볼 수 있습니다.

3. 정렬

알고리즘 문제를 풀 때 종종 사전을 통해 정렬해야 합니다.

키 값으로 정렬하려면 SortedDictionary를 사용할 수 있습니다.

문제는 항상 키와 값 또는 값을 기준으로 정렬하고 싶다는 것입니다.

.

Linq 네임스페이스를 추가하여 C# 사전 정렬을 간소화할 수 있습니다.

다음은 사전의 값을 사용하여 정렬하는 방법입니다.

첫 번째 블록은 정렬 전이고 두 번째 블록은 값 오름차순으로 정렬되며 세 번째 블록은 값 내림차순으로 정렬됩니다.

이 OrderBy를 사용한 정렬은 SortedDictionary에도 사용할 수 있습니다.

다음 코드는 SortedDictionary를 사용하여 키 값을 기준으로 정렬된 항목을 오름차순으로 정렬합니다.

값을 기준으로 오름차순으로 정렬

John과 Arya는 같은 점수를 받았지만 Aria가 알파벳에서 더 앞선 위치에 있기 때문에 John보다 먼저 배치됩니다.