Soru C # foreach'daki if ifadesine göre listedeki bir sonraki maddeye git


C # kullanıyorum. Eşyaların bir listesi var. Kullanarak her bir öğeye geçiyorum foreach. Benim içinde foreach Çok fazla var if bazı şeyleri kontrol eden ifadeler. Bunlardan herhangi biri varsa if ifadeler bir yanlış döndürür, sonra bu öğeyi atlamasını ve listedeki bir sonraki öğeye gitmesini istiyorum. Herşey if İzleyen ifadeler dikkate alınmamalıdır. Bir mola kullanmayı denedim ama bütün bir çıkıştan çıkar foreach Beyan.

Şu an sahip olduğum şey:

foreach (Item item in myItemsList)
{
   if (item.Name == string.Empty)
   {
      // Display error message and move to next item in list.  Skip/ignore all validation
      // that follows beneath
   }

   if (item.Weight > 100)
   {
      // Display error message and move to next item in list.  Skip/ignore all validation
      // that follows beneath
   }
}

Teşekkürler


44
2017-11-24 11:56


Menşei


@PaulG: Mesajımı neden düzenlediniz? - Brendan Vogt
Düzenleme geçmişini 'düzenlenmiş' seçeneğinin yanındaki aralığı tıklayarak görebilirsiniz - bu durumda basit bir yazım hatası düzeltildi. - Steve Townsend
@Steve: Teşekkürler. - Brendan Vogt
Evet özür dilerim, Typo ve okumayı kolaylaştırmak için kod blokları olarak 'ifs' biçimlendirdi (imho) - PaulG


Cevaplar:


kullanım continue; yerine break; içerilen kodun daha fazlasını yürütmeden döngünün sonraki yinelemesine girmek.

foreach (Item item in myItemsList)
{
   if (item.Name == string.Empty)
   {
      // Display error message and move to next item in list.  Skip/ignore all validation
      // that follows beneath
      continue;
   }

   if (item.Weight > 100)
   {
      // Display error message and move to next item in list.  Skip/ignore all validation
      // that follows beneath
      continue;
   }
}

Resmi dokümanlar İşteama çok fazla renk eklemiyorlar.


93
2017-11-24 11:58



Teşekkürler. Sürdürmenin, foreach bedeninde devam etmek olduğunu sanıyordum. - Brendan Vogt
@Brendan - bunu yapmak için herhangi bir kontrol ifadesi kullanmıyorsunuz, sanki if döngü dışındaki ifadeler. - Steve Townsend


Bunu dene:

foreach (Item item in myItemsList)
{
  if (SkipCondition) continue;
  // More stuff here
}

14
2017-11-24 11:58





Kullanmalısın:

continue;

7
2017-11-24 11:59





continue anahtar kelime sonra ne yaparsın. break dışarı çıkacak foreach döngü, bundan kaçınmak istersiniz.


4
2017-11-24 11:59





kullanım continue yerine break. :-)


3
2017-11-24 11:59