>백엔드 개발 >C++ >C#에서 두 목록을 동시에 반복하려면 어떻게 해야 합니까?

C#에서 두 목록을 동시에 반복하려면 어떻게 해야 합니까?

Susan Sarandon
Susan Sarandon원래의
2024-12-31 13:13:171002검색

How Can I Iterate Through Two Lists Simultaneously in C#?

C#의 ForEach를 사용하여 두 개의 목록 또는 배열을 동시에 반복

C#에서는 동일한 메서드를 사용하여 여러 목록이나 배열을 동시에 반복할 수 있습니다. foreach 문. 이렇게 하면 여러 가지 반복적인 접근 방식이 필요하지 않고 프로세스가 간소화됩니다.

Zip 방법 사용

.NET Framework 4.0 이상을 사용하는 경우 다음을 수행할 수 있습니다. 내장된 Zip 방법을 활용하세요. 이 방법은 지정된 두 시퀀스의 요소를 쌍으로 묶어 쌍의 시퀀스를 만듭니다.

예를 들어 listA와 listB라는 두 개의 목록이 있는 경우 다음과 같이 Zip 방법을 활용할 수 있습니다.

var numbers = new [] { 1, 2, 3, 4 };
var words = new [] { "one", "two", "three", "four" };

var numbersAndWords = numbers.Zip(words, (n, w) => new { Number = n, Word = w });

이 코드는 일련의 익명 개체를 생성하며, 각 개체에는 Number 속성과 Word 속성이 포함됩니다. 그런 다음 foreach 문을 사용하여 이 시퀀스를 반복할 수 있습니다.

foreach(var nw in numbersAndWords)
{
    Console.WriteLine(nw.Number + nw.Word);
}

Tuple을 사용한 대체 접근 방식

또는 익명 개체를 만드는 대신 Tuple을 사용할 수 있습니다. 저장하기 위한 Tuple.Create 도우미 중괄호:

foreach (var nw in numbers.Zip(words, Tuple.Create)) 
{
    Console.WriteLine(nw.Item1 + nw.Item2);
}

기타 반복 옵션

Zip 방법은 두 시퀀스를 동시에 반복하는 간결한 방법을 제공하지만 다른 옵션도 있습니다. 한 가지 접근 방식은 이중 for 루프를 사용하는 것입니다:

for(int i = 0; i < listA.Count; i++)
    listB[i] = listA[i];

또 다른 방법은 Parallel.ForEach를 사용하는 것입니다:

Parallel.ForEach(numbers, number =>
{
    int index = Array.IndexOf(numbers, number);
    listB[index] = words[index];
});

최상의 반복 접근 방식 선택

가장 좋은 반복 접근 방식은 특정 요구 사항과 사용 중인 .NET 버전에 따라 다릅니다. Zip 방법은 효율적이고 다재다능한 반면, 다른 접근 방식은 레거시 시나리오나 인덱스를 기반으로 값을 할당할 때 더 적합할 수 있습니다.

위 내용은 C#에서 두 목록을 동시에 반복하려면 어떻게 해야 합니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.