• 티스토리 홈
  • 프로필사진
    유니얼
  • 방명록
  • 공지사항
  • 태그
  • 블로그 관리
  • 글 작성
유니얼
  • 프로필사진
    유니얼
    • 분류 전체보기 (295)
      • Unity (17)
        • 게임 개발 (5)
      • Unreal (24)
        • 게임 개발 (20)
      • DirectX (36)
      • 코딩테스트 (91)
        • 프로그래머스 (25)
        • 백준 (66)
      • Google Workspace (1)
      • Programing (102)
        • C# (68)
        • C++ (24)
        • JavaScript (10)
      • 게임 서버 프로그래밍 (17)
      • Web (6)
        • 슈퍼코딩 (6)
  • 방문자 수
    • 전체:
    • 오늘:
    • 어제:
  • 최근 댓글
    등록된 댓글이 없습니다.
  • 최근 공지
    등록된 공지가 없습니다.
# Home
# 공지사항
#
# 태그
# 검색결과
# 방명록
  • C# 프로그래밍의 기초: SortedDictionary
    2024년 08월 24일
    • 유니얼
    • 작성자
    • 2024.08.24.:17
    728x90

    SortedDictionary<TKey, TValue>는 C#의 Dictionary와 유사하지만, 자동으로 키를 기준으로 정렬하는 특성을 가진 컬렉션입니다. 이 블로그 포스트에서는 SortedDictionary의 특징, 사용 방법, 그리고 어떤 상황에서 사용하는 것이 적합한지 살펴보겠습니다.

    SortedDictionary의 주요 특징

    1. 자동 정렬: SortedDictionary는 키에 따라 자동으로 정렬되며, 키는 기본적으로 오름차순으로 정렬됩니다. 키 중복은 허용되지 않으며, 새로운 키-값 쌍을 추가하면 즉시 올바른 위치에 삽입됩니다.
    2. 키-값 쌍 구조: 각 데이터는 키와 값의 쌍으로 저장되며, 키를 통해 빠르게 데이터에 접근할 수 있습니다. 이 구조는 빠른 검색, 삽입 및 삭제 작업을 지원합니다.
    3. 효율적인 데이터 관리: SortedDictionary는 트리 구조를 사용하여 데이터를 관리합니다. 이는 대규모 데이터 집합에서 삽입, 삭제, 검색 작업을 효율적으로 수행할 수 있도록 합니다.

    주요 메서드 및 사용 방법

    • Add(TKey key, TValue value): 새로운 키-값 쌍을 추가합니다. 키가 이미 존재하면 예외가 발생합니다.
    • Remove(TKey key): 지정된 키에 해당하는 요소를 제거합니다.
    • ContainsKey(TKey key): 딕셔너리에 특정 키가 존재하는지 확인합니다.
    • TryGetValue(TKey key, out TValue value): 키에 해당하는 값을 안전하게 검색하고, 성공 여부를 반환합니다.
    • Keys, Values: 딕셔너리의 모든 키 또는 값에 접근할 수 있는 컬렉션을 제공합니다.
    • Count: 딕셔너리에 저장된 요소의 수를 반환합니다.

    전체예제 코드

    using System;
    using System.Collections.Generic;
    
    namespace CSharp_ProgramingStudy.Chapter6_DataStructure
    {
        public class Class10
        {
            public void Run()
            {
                // SortedDictionary 생성
                SortedDictionary<int, string> sortedDict = new SortedDictionary<int, string>();
    
                // 키-값 쌍 추가
                sortedDict.Add(2, "Two");
                sortedDict.Add(1, "One");
                sortedDict.Add(3, "Three");
    
                // 자동으로 정렬된 키-값 쌍 출력
                Console.WriteLine("SortedDictionary elements:");
                foreach (KeyValuePair<int, string> kvp in sortedDict)
                {
                    Console.WriteLine($"Key: {kvp.Key}, Value: {kvp.Value}");
                    // 출력 순서: Key: 1, Value: One
                    //            Key: 2, Value: Two
                    //            Key: 3, Value: Three
                }
    
                // 특정 키를 사용하여 값에 접근
                if (sortedDict.TryGetValue(2, out string value))
                {
                    Console.WriteLine($"Value for key 2: {value}"); // 출력: Value for key 2: Two
                }
    
                // 키를 사용하여 요소 제거
                sortedDict.Remove(3);
    
                // 요소 제거 후 SortedDictionary 출력
                Console.WriteLine("After removing key 3:");
                foreach (KeyValuePair<int, string> kvp in sortedDict)
                {
                    Console.WriteLine($"Key: {kvp.Key}, Value: {kvp.Value}");
                    // 출력 순서: Key: 1, Value: One
                    //            Key: 2, Value: Two
                }
    
                // 특정 키가 포함되어 있는지 확인
                Console.WriteLine($"Contains key 3: {sortedDict.ContainsKey(3)}"); // 출력: Contains key 3: False
            }
        }
    }

    결론

    SortedDictionary<TKey, TValue>는 자동으로 정렬되는 데이터 컬렉션을 필요로 하는 애플리케이션에 이상적입니다. 특히, 정렬된 데이터를 유지하면서 키에 기반한 빠른 접근이 필요한 경우 유용하게 사용할 수 있습니다. 하지만 삽입 및 삭제 작업의 비용이 SortedList에 비해 높을 수 있으므로, 성능 요구 사항과 데이터 크기를 고려하여 적합한 컬렉션 타입을 선택하는 것이 중요합니다.

    반응형
    다음글
    다음 글이 없습니다.
    이전글
    이전 글이 없습니다.
    댓글
조회된 결과가 없습니다.
스킨 업데이트 안내
현재 이용하고 계신 스킨의 버전보다 더 높은 최신 버전이 감지 되었습니다. 최신버전 스킨 파일을 다운로드 받을 수 있는 페이지로 이동하시겠습니까?
("아니오" 를 선택할 시 30일 동안 최신 버전이 감지되어도 모달 창이 표시되지 않습니다.)
목차
표시할 목차가 없습니다.
    • 안녕하세요
    • 감사해요
    • 잘있어요

    티스토리툴바