program tip

C #에서 foreach 루프 종료

radiobox 2020. 10. 25. 12:03
반응형

C #에서 foreach 루프 종료


foreach (var name in parent.names)
{
    if name.lastname == null)
    {
        Violated = true;
        this.message = "lastname reqd";
    }

    if (!Violated)
    {
        Violated = !(name.firstname == null) ? false : true;
        if (ruleViolated)
            this.message = "firstname reqd";
    }
}

위반이 사실이면 foreach즉시 루프 에서 빠져 나가고 싶습니다 . 어떻게하나요?


사용하다 break;


편집하다:

귀하의 질문과 관련이 없으며 귀하의 코드에서 다음 줄을 봅니다.

Violated = !(name.firstname == null) ? false : true;

이 줄에서는 부울 값을 사용 (name.firstname == null)합니다. 그런 다음 !연산자를 적용합니다 . 그런 다음 값이 true이면 Violated를 false로 설정합니다. 그렇지 않으면 사실입니다. 따라서 기본적으로 Violated는 원래 표현식과 동일한 값으로 설정됩니다 (name.firstname == null). 다음과 같이 사용하지 마십시오.

Violated = (name.firstname == null);

다음 문장을 사용하십시오.

break;

break키워드를 사용하십시오 .


이 코드를 보면 루프에서 빨리 빠져 나갈 수 있습니다!

foreach (var name in parent.names)
{
   if (name.lastname == null)
   {
      Violated = true;
      this.message = "lastname reqd";
      break;
   }
   else if (name.firstname == null)
   {
      Violated = true;
      this.message = "firstname reqd";
      break;
   }
}

테스트 중에 중단 후 foreach 루프가 루프를 벗어나지 않고 루프가 시작되는 것으로 나타났습니다. 그래서 나는 foreach를 for로 바꾸었고,이 경우에는 break가 올바르게 작동합니다. break 프로그램 흐름이 루프에서 나간 후에.

참고 URL : https://stackoverflow.com/questions/456276/exiting-foreach-loop-in-c-sharp

반응형