이 글은 기계 번역의 미러 문서이며, 원본 기사로 바로 이동하려면 여기를 클릭해 주세요.

보기: 2582|회답: 1

[출처] .NET/C#은 foreach에서 인덱스를 영리하게 선택합니다

[링크 복사]
게시됨 2024. 2. 1. 오후 8:26:18 | | | |
소개

for와 foreach 루프는 C# 개발자 도구 상자에서 가장 유용한 구성 요소 중 하나입니다.
제 생각에는 컬렉션을 반복하는 것이 대부분의 경우보다 더 편리합니다.
이 기능은 인덱스가 없는 컬렉션(예: , )을 포함해 모든 컬렉션 유형과 작동하며, 인덱스를 통해 현재 요소에 접근할 필요가 없습니다.
하지만 때로는 현재 항목의 인덱스가 정말 필요할 때가 있습니다; 예전에 개발 중에 foreach를 사용해 컬렉션을 이동할 때 이 문제를 겪었어요. 이 패턴은 일반적으로 다음 중 하나를 사용합니다:


항상 저를 짜증나게 했어요; 값과 지수 둘 다 얻을 수 없나요?
Linq와 튜플을 이용한 간단한 해법이 있습니다.

해결책 1:

확장 메서드를 이렇게 작성하면 됩니다:

위 코드를 다음 네임스페이스에 도입해 주세요:

호출 방식:

참고: 컬렉션 뒤쪽위드인덱스();

해결책 2:

확장 방법이 번거롭다고 느껴진다면 솔루션 2를 사용할 수도 있습니다

완성됐고, 성능에 약간의 영향이 있어요. 필요할 때 사용 과정을 직접 관찰할 수 있어요!!





이전의:Nginx는 TLSv1.0과 TLSv1.1의 무효 솔루션을 비활성화합니다.
다음:Oracle 쿼리가 필드 전체 대문자 문제를 반환합니다
 집주인| 게시됨 2024. 2. 24. 오후 5:00:44 |
.NET 9 쌍 컬렉션인덱스 확장 메서드를 추가했습니다, 인덱스를 직접 얻을 수 있으며, 다음을 참조하세요:하이퍼링크 로그인이 보입니다.

공개 정적 System.Collections.Generic.IEnumerable<(int 인덱스, TSource 항목)> 인덱스<TSource> (이 System.Collections.Generic.IEnumerable<TSource> 소스);

VS 2022 미리보기는 다음 곳에서 다운로드하세요:하이퍼링크 로그인이 보입니다.

.NET 9.0 미리보기 다운로드:하이퍼링크 로그인이 보입니다.

다음 코드로 새로운 .NET 9 콘솔 앱을 만드세요:







면책 조항:
Code Farmer Network에서 발행하는 모든 소프트웨어, 프로그래밍 자료 또는 기사는 학습 및 연구 목적으로만 사용됩니다; 위 내용은 상업적 또는 불법적인 목적으로 사용되지 않으며, 그렇지 않으면 모든 책임이 사용자에게 부담됩니다. 이 사이트의 정보는 인터넷에서 가져온 것이며, 저작권 분쟁은 이 사이트와는 관련이 없습니다. 위 내용은 다운로드 후 24시간 이내에 컴퓨터에서 완전히 삭제해야 합니다. 프로그램이 마음에 드신다면, 진짜 소프트웨어를 지원하고, 등록을 구매하며, 더 나은 진짜 서비스를 받아주세요. 침해가 있을 경우 이메일로 연락해 주시기 바랍니다.

Mail To:help@itsvse.com