Computer >> 컴퓨터 >  >> 프로그래밍 >> C#

C# 딕셔너리(Dictionary)에 저장된 값을 업데이트하는 방법

C#에서 Dictionary(딕셔너리)는 키(Key)와 값(Value) 쌍을 저장하기 위해 사용되는 제네릭 컬렉션입니다. 딕셔너리에서 키는 null일 수 없지만, 값은 null을 허용합니다. 또한 모든 키는 반드시 고유해야 하며, 중복된 키를 사용하려고 하면 컴파일러가 예외(Exception)를 발생시킵니다.

딕셔너리 값 업데이트의 기본 원리

앞서 언급했듯이 키는 모든 값에 대해 유일하므로, 키를 사용하여 딕셔너리의 값을 손쉽게 업데이트할 수 있습니다.

myDictionary[myKey] = myNewValue;

즉, 기존에 존재하는 키에 새로운 값을 할당하면 해당 키에 연결된 값이 새 값으로 대체됩니다. 이 방식은 별도의 메서드 호출 없이 인덱서(Indexer) 문법만으로 간단히 처리할 수 있다는 장점이 있습니다.

예제 코드

학생의 아이디(id)와 이름(name)을 저장하는 딕셔너리를 예로 들어 보겠습니다. 아래 코드에서는 id가 2인 학생의 이름을 "Mrk"에서 "Mark"로 변경합니다.

using System;
using System.Collections.Generic;
namespace DemoApplication{
   class Program{
      static void Main(string[] args){
         Dictionary<int, string> students = new Dictionary<int, string>{
            { 1, "John" },
            { 2, "Mrk" },
            { 3, "Bill" }
         };
         Console.WriteLine($"Name of student having id 2: {students[2]}");
         // id가 2인 학생의 이름 업데이트
         students[2] = "Mark";
         Console.WriteLine($"Updated Name of student having id 2: {students[2]}");
         Console.ReadLine();
      }
   }
}

코드 설명

  • 딕셔너리 선언 및 초기화: Dictionary<int, string> 타입으로 students 객체를 생성하고, 컬렉션 초기화 구문으로 세 명의 학생 데이터를 추가했습니다.
  • 값 조회: students[2]처럼 키를 지정하여 해당 키에 연결된 값을 읽어올 수 있습니다.
  • 값 업데이트: students[2] = "Mark"; 구문으로 id가 2인 학생의 이름을 새로운 값으로 덮어씁니다.

실행 결과

위 코드를 실행하면 다음과 같은 출력 결과를 확인할 수 있습니다.

Name of student having id 2: Mrk
Updated Name of student having id 2: Mark

주의 사항

값을 업데이트할 때 지정한 키가 딕셔너리에 존재하지 않으면, 예외가 발생하는 것이 아니라 새로운 키/값 쌍이 추가됩니다. 따라서 기존 항목만 수정하고 싶다면 ContainsKey() 메서드나 TryGetValue() 메서드를 사용하여 키의 존재 여부를 먼저 확인하는 것이 안전합니다.