2026년 상식닷컴 선정 식당 & 카페 리스트
최근에 오픈한 호텔을 찾는다면 살펴보세요

C#의 Dictionary에서 키와 값을 추가하는 방법은?

_____
Q1: C 의 Dictionary에 키와 값을 추가하는 기본적인 방법은 무엇인가요?
A1: Dictionary 객체에 키와 값을 추가하려면 `Add` 메서드를 사용합니다. 예를 들어:
```csharp
Dictionary dict = new Dictionary();
dict.Add(1, "Apple");
```

---

Q2: 이미 존재하는 키를 `Add` 메서드로 추가하면 어떻게 되나요?
A2: 동일한 키를 `Add`로 다시 추가하면 `ArgumentException`이 발생합니다. 중복 키를 허용하지 않습니다.

---

Q3: 키가 이미 있을 때 값을 덮어쓰려면 어떻게 해야 하나요?
A3: 인덱서(indexer)를 사용하여 값을 할당하면, 키가 있으면 값을 덮어쓰고, 없으면 새로 추가합니다.
```csharp
dict[1] = "Banana"; // 키 1이 있으면 "Banana"로 값 변경, 없으면 새로 추가
```

---

Q4: `TryAdd` 메서드는 무엇이며 어떻게 사용하나요?
A4: `TryAdd`는 .NET Core 2.0 이상부터 지원하며, 키가 없을 때만 값을 추가하고 성공 여부를 bool로 반환합니다.
```csharp
bool added = dict.TryAdd(2, "Orange"); // 키 2가 없으면 추가하고 true 반환, 있으면 false 반환
```

---

Q5: Dictionary 초기화 시에 키와 값을 한꺼번에 넣을 수 있나요?
A5: 네, 컬렉션 초기화 구문을 사용하면 다음과 같이 가능합니다.
```csharp
var dict = new Dictionary
{
{1, "Apple"},
{2, "Banana"}
};
```

---

Q6: 키-값 쌍을 나중에 대량으로 추가하려면 어떻게 하나요?
A6: 별도의 메서드는 없고, 반복문으로 `Add` 또는 인덱서 할당을 반복하거나, LINQ와 함께 새 Dictionary 생성 방식을 사용합니다.

---

Q7: 키에 null 값을 사용할 수 있나요?
A7: 키 타입이 참조형식일 경우, null 키는 허용하지 않습니다. 추가 시 `ArgumentNullException`이 발생합니다.

---

Q8: 값을 null로 추가할 수 있나요?
A8: 값 타입(예: int)인 경우 불가능하지만, 참조형식(string 등) 값은 null로 추가 가능합니다.
```csharp
dict.Add(3, null); // 가능
```

---

요약:
- `Add(key, value)`로 새 항목 추가 (중복 키 시 예외)
- `dict[key] = value`로 값 할당 또는 추가 (덮어쓰기 가능)
- `.TryAdd(key, value)`로 중복 키 체크 후 추가 시도
- 객체 초기화 구문으로 여러 개 항목 한꺼번에 추가 가능
C 의 `Dictionary`는 키-값 쌍을 저장하는 매우 유용한 데이터 구조입니다.

이 컬렉션은 키를 사용하여 값을 빠르게 검색할 수 있도록 설계되어 있으며, 키는 고유해야 합니다.

즉, 동일한 키를 두 번 추가할 수는 없습니다.

`Dictionary`는 다양한 방법으로 키와 값을 추가할 수 있으며, 이 글에서는 그 방법에 대해 자세히 설명하겠습니다.

Dictionary의 기본 사용법 `Dictionary`를 사용하기 위해서는 먼저 `System.Collections.Generic` 네임스페이스를 포함해야 합니다.

다음은 기본적인 `Dictionary` 선언 및 초기화 방법입니다.

```csharp using System; using System.Collections.Generic; class Program { static void Main() { // Dictionary 선언 및 초기화 Dictionary myDictionary = new Dictionary(); } } ``` 키와 값 추가하기 `Dictionary`에 키와 값을 추가하는 방법은 여러 가지가 있습니다.

가장 일반적인 방법은 `Add` 메서드를 사용하는 것입니다.

1. Add 메서드 사용하기 `Add` 메서드는 두 개의 매개변수를 받습니다: 키와 값. 이 메서드는 키가 이미 존재하는 경우 `ArgumentException`을 발생시킵니다.

```csharp myDictionary.Add(1, "Apple"); myDictionary.Add(2, "Banana"); ``` 위의 코드에서 `1`과 `2`는 키이고, `"Apple"`과 `"Banana"`는 각각의 값입니다.



2. 인덱서 사용하기 `Dictionary`는 인덱서를 지원하므로, 키를 사용하여 값을 직접 할당할 수 있습니다.

이 방법은 키가 이미 존재하는 경우 값을 업데이트하며, 존재하지 않는 경우에는 새로운 키-값 쌍을 추가합니다.

```csharp myDictionary[3] = "Cherry"; // 새로운 키-값 쌍 추가 myDictionary[1] = "Avocado"; // 기존 키의 값 업데이트 ``` 위의 코드에서 `3`은 새로운 키로 추가되고, `1`의 값은 `"Avocado"`로 업데이트됩니다.



3. TryAdd 메서드 사용하기 (C

7.0 이상) C

7.0부터는 `TryAdd` 메서드를 사용할 수 있습니다.

이 메서드는 키가 이미 존재하는 경우 `false`를 반환하고, 존재하지 않는 경우에는 키-값 쌍을 추가하고 `true`를 반환합니다.

```csharp bool added = myDictionary.TryAdd(4, "Date"); if (added) { Console.WriteLine("키-값 쌍이 추가되었습니다.

"); } else { Console.WriteLine("키가 이미 존재합니다.

"); } ``` Dictionary의 내용 확인하기 `Dictionary`에 추가된 내용을 확인하려면 `foreach` 루프를 사용하여 각 키-값 쌍을 순회할 수 있습니다.

```csharp foreach (var kvp in myDictionary) { Console.WriteLine($"키: {kvp.Key}, 값: {kvp.Value}"); } ``` 예외 처리 `Dictionary`를 사용할 때는 항상 예외 처리를 고려하는 것이 좋습니다.

예를 들어, 키가 존재하지 않는 경우 값을 가져오려고 하면 `KeyNotFoundException`이 발생할 수 있습니다.

이를 방지하기 위해 `ContainsKey` 메서드를 사용하여 키의 존재 여부를 확인할 수 있습니다.

```csharp if (myDictionary.ContainsKey(

5)) { Console.WriteLine(myDictionary[5]); } else { Console.WriteLine("키가 존재하지 않습니다.

"); } ``` 결론 C 의 `Dictionary`는 키-값 쌍을 효율적으로 저장하고 관리할 수 있는 강력한 도구입니다.

`Add`, 인덱서, `TryAdd` 메서드를 통해 쉽게 키와 값을 추가할 수 있으며, 다양한 방법으로 데이터를 조회하고 관리할 수 있습니다.

이러한 기능들을 활용하여 효율적인 데이터 구조를 설계할 수 있습니다.

작성자: 이채윤 [비회원] | 작성일자: 1년 전 2024-09-09 08:38:58
조회수: 283 | 댓글: 0 | 좋아요: 0 | 싫어요: 0
내용이 부정확하다면 싫어요를 클릭해주세요.