C#에서 사전을 반복하는 가장 좋은 방법

Puneet Dobhal 2023년10월12일
  1. for 루프를 사용하여 C#에서 사전을 반복
  2. foreach 루프를 사용하여 C#에서 사전을 반복
  3. C#에서 사전을 반복하기 위해ParallelEnumerable.ForAll 메소드 사용
C#에서 사전을 반복하는 가장 좋은 방법

C#의 Dictionary는 키-값 쌍의 모음입니다. key는 단어를 나타내고 value는 그 의미를 나타내는 영어 사전과 다소 유사합니다. 이 기사에서는 사전을 반복하는 다양한 방법을 살펴 보겠습니다.

표현을 위해 기사 전체에서 다음과 같은 사전 개체 정의를 고려할 것입니다.

Dictionary<int, string> sample_Dict = new Dictionary<int, string>();

이제이 사전을 순회하는 데 사용할 수있는 몇 가지 방법을 살펴 보겠습니다.

for 루프를 사용하여 C#에서 사전을 반복

for 루프 방법은 쉽고 간결하며 인덱스를 사용하여 사전을 순차적으로 반복합니다.

using System;
using System.Collections.Generic;

public class Sample {
  public static void Main() {
    Dictionary<int, string> sample_Dict =
        new Dictionary<int, string>() { { 0, "value_1" }, { 1, "value_2" }, { 2, "value_3" } };
    for (int index = 0; index < sample_Dict.Count; index++)
      System.Console.WriteLine(index + ":" + sample_Dict[index]);
  }
}

출력:

0:value_1
1:value_2
2:value_3

알다시피 Dictionary 객체를 정의하는 동안 초기화 목록도 지정했습니다. 이니셜 라이저 목록을 지정하는 동안 목록의 각 항목에 고유 키가 있는지 확인하십시오. 그렇지 않으면 ‘런타임’예외가 발생합니다.

foreach 루프를 사용하여 C#에서 사전을 반복

foreach 루핑은 당신이 선택할 수있는 또 다른 대안입니다.

using System;
using System.Collections.Generic;

public class Sample {
  public static void Main() {
    Dictionary<int, string> sample_Dict =
        new Dictionary<int, string>() { { 0, "value_1" }, { 1, "value_2" }, { 2, "value_3" } };
    foreach (var entry in sample_Dict) System.Console.WriteLine(entry.Key + ":" + entry.Value);
  }
}

출력:

0:value_1
1:value_2
2:value_3

위의 방법은foreach 루프의 게으른 구현으로 간주 될 수 있습니다. KeyValuePair<TKey,TValue> 구조를 사용하여 foreach 메소드를 구현할 수도 있습니다.

using System;
using System.Collections.Generic;

public class Sample {
  public static void Main() {
    Dictionary<int, string> sample_Dict =
        new Dictionary<int, string>() { { 0, "value_1" }, { 1, "value_2" }, { 2, "value_3" } };
    foreach (var entry in sample_Dict) System.Console.WriteLine(entry.Key + ":" + entry.Value);
  }
}

출력:

0:value_1
1:value_2
2:value_3

C#에서 사전을 반복하기 위해ParallelEnumerable.ForAll 메소드 사용

이 방법은 사전의 각 키-값 쌍에 대한 멀티 스레딩 처리를 통합하므로 큰 사전을 반복 할 때 유용합니다.

using System;
using System.Linq;
using System.Collections.Generic;

public class Sample {
  public static void Main() {
    /*User Code Here*/
    Dictionary<int, string> sample_Dict =
        new Dictionary<int, string>() { { 0, "value_1" }, { 1, "value_2" }, { 2, "value_3" } };
    sample_Dict.AsParallel().ForAll(entry => Console.WriteLine(entry.Key + ":" + entry.Value));
  }
}

출력:

0:value_1
1:value_2
2:value_3

위에서 언급 한 최선의 방법을 분석 할 때 특정 매개 변수를 고려해야하며 결과는 정황 적입니다. 루핑 방법은 간결하고 효과적이지만 큰 사전을 반복 할 때는 런타임 복잡성 측면에서 비실용적입니다.

여기에는ParallelEnumerable.ForAll 메소드가 사용되어 중요한 시간을 동시에 절약 할 수있어 특정 애플리케이션을 설계하는 동안 중요한 요소가 될 수 있습니다.

관련 문장 - Csharp Dictionary