> 백엔드 개발 > C++ > C# foreach 루프에서 현재 반복 인덱스에 어떻게 액세스할 수 있습니까?

C# foreach 루프에서 현재 반복 인덱스에 어떻게 액세스할 수 있습니까?

Barbara Streisand
풀어 주다: 2025-01-27 18:01:10
원래의
494명이 탐색했습니다.

How Can I Access the Current Iteration Index in a C# foreach Loop?

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 중국어 웹사이트의 기타 관련 기사를 참조하세요!

원천:php.cn
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
저자별 최신 기사
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿