"forach" 루프의 반복을 건너뛰려면 어떻게 해야 합니까?
Perl에서 나는 다음을 사용하여 각(또는 모든 루프) 반복을 건너뛸 수 있습니다.next;
지휘권
반복을 건너뛰고 C#의 다음 루프로 건너뛰는 방법이 있습니까?
foreach (int number in numbers)
{
if (number < 0)
{
// What goes here to skip over the loop?
}
// otherwise process number
}
원하는 항목:
foreach (int number in numbers) // <--- go back to here --------+
{ // |
if (number < 0) // |
{ // |
continue; // Skip the remainder of this iteration. -----+
}
// do work
}
키워드에 대해 자세히 알아보겠습니다.
업데이트: Brian의 후속 질문에 대한 답변:
만약 제가 루프를 위해 중첩을 하고 확장된 루프 중 하나의 반복을 건너뛰고 싶다면 어떻게 해야 하는지 더 명확히 해주실 수 있나요?
for (int[] numbers in numberarrays) { for (int number in numbers) { // What to do if I want to // jump the (numbers/numberarrays)? } }
A continue
항상 가장 가까운 범위에 적용되므로 가장 바깥쪽 루프를 벗어나는 데 사용할 수 없습니다.만약 그런 증상이 생긴다면, 당신은 당신이 정확히 무엇을 원하는지에 따라 더 복잡한 일을 해야 할 것입니다.break
그러면 내부 루프에서.continue
바깥 고리에키워드에 대한 설명서는 여기를 참조하십시오.그break
C# 키워드는 Perl과 유사합니다.last
키워드
또한 처리하지 않을 값을 미리 걸러내라는 Dustin의 제안을 받아들이는 것도 고려해 보십시오.
foreach (var basket in baskets.Where(b => b.IsOpen())) {
foreach (var fruit in basket.Where(f => f.IsTasty())) {
cuteAnimal.Eat(fruit); // Om nom nom. You don't need to break/continue
// since all the fruits that reach this point are
// in available baskets and tasty.
}
}
또 다른 접근 방식은 루프가 실행되기 전에 LINQ를 사용하여 필터링하는 것입니다.
foreach ( int number in numbers.Where(n => n >= 0) )
{
// process number
}
if 테스트를 뒤집을 수도 있습니다.
foreach ( int number in numbers )
{
if ( number >= 0 )
{
//process number
}
}
foreach ( int number in numbers )
{
if ( number < 0 )
{
continue;
}
//otherwise process number
}
문을 사용할 수 있습니다.
예:
foreach(int number in numbers)
{
if(number < 0)
{
continue;
}
}
linq를 사용하는 또 다른 방법은 다음과 같습니다.
foreach ( int number in numbers.Skip(1))
{
// process number
}
여러 항목 중 첫 번째 항목을 건너뛰려면 다음과 같이 하십시오.
또는 사용.SkipWhere
건너뛰기 조건을 지정하려는 경우.
continue 문을 사용합니다.
foreach(object number in mycollection) {
if( number < 0 ) {
continue;
}
}
가장 쉬운 방법은 다음과 같습니다.
//Skip First Iteration
foreach ( int number in numbers.Skip(1))
//Skip any other like 5th iteration
foreach ( int number in numbers.Skip(5))
언급URL : https://stackoverflow.com/questions/654113/how-do-i-skip-an-iteration-of-a-foreach-loop
'programing' 카테고리의 다른 글
git는 파일을 어떻게 저장합니까? (0) | 2023.05.26 |
---|---|
왜 Git이 Subversion보다 나은가요? (0) | 2023.05.26 |
VB.NET에서 공유 변수는 어떤 용도로 사용됩니까? (0) | 2023.05.21 |
pathlib를 사용하여 모든 하위 디렉터리를 재귀적으로 반복합니다. (0) | 2023.05.21 |
VB.NET의 기본 속성? (0) | 2023.05.21 |