C# foreach
루프 내에서 반복 인덱스 검색
C#의 foreach
루프는 본질적으로 반복 인덱스에 대한 액세스를 제공하지 않습니다. 그러나 이를 달성하기 위해 LINQ의 Select
방법을 영리하게 사용할 수 있습니다.
값 및 인덱스 매개변수가 있는 람다 표현식을 허용하는 Select
의 오버로드를 사용하는 Ian Mercer의 접근 방식은 매우 효과적입니다.
<code class="language-csharp">foreach (var item in Model.Select((value, i) => new { i, value })) { var value = item.value; var index = item.i; }</code>
람다 식 (value, i) => new { i, value }
은 항목(value
)과 해당 인덱스(i
)를 모두 포함하는 익명 객체를 생성합니다.
성능을 향상하고 불필요한 힙 할당을 방지하려면(특히 대규모 컬렉션에 유용함) ValueTuple
(C# 7.0부터 사용 가능)을 사용하는 것이 좋습니다.
<code class="language-csharp">foreach (var item in Model.Select((value, i) => (value, i))) { var value = item.value; var index = item.i; }</code>
더욱 간결하게 C#의 구조 분해 기능을 활용하면 값과 인덱스에 직접 액세스할 수 있습니다.
<code class="language-csharp">foreach (var (value, i) in Model.Select((value, i) => (value, i))) { // Access `value` and `i` directly here. }</code>
이러한 방법을 사용하면 foreach
루프를 사용하는 동안 현재 반복 인덱스를 효과적으로 얻을 수 있으므로 코드에 더 큰 제어력과 유연성이 제공됩니다.
위 내용은 C# foreach 루프에서 현재 반복 인덱스에 어떻게 액세스할 수 있습니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!