당신은 continue
키워드와 같은 기능을 필요로 - 당신이 다음의 continue
키워드를 사용하여 고려 했는가?
업데이트 : 예제 코드는 의도를 해독하기 어렵습니다.
for (int i = 0; i <= Collection.Count && Collection[i].Name != "Alan"; i++)
{
// If name is not Alan, increment i.
}
for
루프는 두 세미콜론으로 분리 된 것이 세 부분을 갖는다. 첫 번째 부분은 루프 변수를 초기화합니다. 두 번째 부분은 반복이 시작될 때마다 평가되는 표현식입니다. 거짓이면 루프가 종료됩니다. 세 번째 부분은 각 반복 후에 실행됩니다.
위의 루프는 처음 발생하는 "Alan"에서 종료되며, 반복이 완료 될 때마다 i
이 증가합니다. 마지막으로, Alans가 없으면 마지막으로 i
을 Collection.Count
과 같게 실행합니다.이 값은 컬렉션의 최대 유효 인덱스보다 큰 값입니다. 따라서 i
이 범위를 벗어날 때 Collection[i]
에 액세스하려고하면 예외가 발생합니다.
foreach (var item in Collection.Where(i => i.Name != "Alan"))
{
// item is not an "Alan"
}
당신은 컬렉션을 필터링하는 방법으로 Where
확장 방법을 생각할 수 있습니다 :
은 아마 당신이 원하는.
foreach (var item in Collection)
{
if (item.Name == "Alan")
continue;
// item is not an "Alan"
}
을 또는 당신은 단지 if
의 블록에 코드를 넣을 수 있습니다 :이 모호한 것 같으면
, (당신이 짐작으로) 당신은 continue
키워드와 같은 일을 달성 할 수
foreach (var item in Collection)
{
if (item.Name != "Alan")
{
// item is not an "Alan"
}
}
예제 코드는 큰 도움이 될 것입니다. 나는 당신이 "거짓으로 평가하는 if 문"에 대해 무슨 뜻인지 전혀 모르겠다. 그렇다면 내부의 물건이 실행되지 않고 루프가 정상적으로 계속된다. – DisgruntledGoat
예제 코드를 제공하십시오. – abelenky