C# Foreach 루프 내에서 반복 인덱스 액세스
C# foreach
루프는 컬렉션을 반복하는 간결한 방법을 제공합니다. 그러나 반복 인덱스에 직접 액세스하는 것은 기본적으로 지원되지 않습니다. 이를 달성하는 몇 가지 방법은 다음과 같습니다.
1. 수동 카운터:
가장 간단한 접근 방식은 수동으로 카운터를 증가시키는 것입니다.
<code class="language-csharp">int index = 0; foreach (var item in myCollection) { // Use 'item' and 'index' index++; }</code>
2. LINQ의 Select
(색인 포함):
LINQ의 Select
메서드는 인덱스를 포함하는 오버로드를 제공합니다.
<code class="language-csharp">foreach (var item in myCollection.Select((value, index) => new { Value = value, Index = index })) { var value = item.Value; var index = item.Index; // Use 'value' and 'index' }</code>
이렇게 하면 값과 인덱스가 모두 포함된 익명 유형이 생성됩니다.
3. ValueTuple(C# 7.0 이상):
성능을 향상하고 힙 할당을 방지하려면(특히 대규모 컬렉션의 경우) ValueTuple
:
<code class="language-csharp">foreach (var (value, index) in myCollection.Select((value, index) => (value, index))) { // Access 'value' and 'index' directly }</code>
더 깔끔한 구문을 위해 튜플 분해를 활용합니다.
4. For 루프(대체):
색인 액세스가 필요한 상황에서는 표준 for
루프가 보다 직접적인 솔루션을 제공합니다.
<code class="language-csharp">for (int index = 0; index < myCollection.Count; index++) { var item = myCollection[index]; // Use 'item' and 'index' }</code>
이 접근 방식은 일반적으로 인덱스가 루프 논리에 중요한 경우에 선호됩니다. 코딩 스타일과 성능 요구 사항에 가장 적합한 방법을 선택하세요. 간단한 경우에는 수동 카운터로 충분합니다. 더 큰 컬렉션이나 더 복잡한 시나리오의 경우 ValueTuple
이 포함된 LINQ는 가독성과 효율성의 균형을 제공합니다. for
루프는 인덱스 조작이 루프 작업의 핵심인 경우 실행 가능한 옵션으로 남아 있습니다.
위 내용은 C# foreach 루프에서 반복 색인에 액세스하려면 어떻게해야합니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!