SORU
6 Mayıs 2009, ÇARŞAMBA


.NET - Listesi<T> a 'dosyalarda grup' döngü içinden Çıkarın

Ben bu kodu varistiyorumbu gibi görünmek için:

List<Type> Os;

...

foreach (Type o in Os)
    if (o.cond)
        return;  // Quitting early is important for my case!
    else
        Os.Remove(o);

... // Other code

Bu liste üzerinde: foreach bir döngü içinde olduğunuzda listeden kaldıramazsınız, çünkü işe yaramaz

Yaygın bir şekilde sorunu çözmek için vardır?

Gerekirse farklı bir türe geçebilirim.

Seçenek 2:

List<Type> Os;

...

while (Os.Count != 0)
     if (Os[0].cond)
         return;
     else
         Os.RemoveAt(0);

... // Other code

Çirkin, ama çalışması gerekir.

CEVAP
6 Mayıs 2009, ÇARŞAMBA


Bu listede geriye doğru yineleme yapabilirsiniz:

for (int i = myList.Count - 1; i >= 0; i--)
{
    if (whatever) myList.RemoveAt(i);
}

< / ^ hr .

Kaldırma olmadığın bir öğe bulduğunuzda bırakmak isteyen hakkında yorum yanıt olarak, o sadece bir süre döngü kullanmak en iyi çözüm olacaktır.

Bunu Paylaş:
  • Google+
  • E-Posta
Etiketler:

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • celebrateubuntu

    celebrateubu

    23 Mayıs 2011
  • Jejoab

    Jejoab

    4 NİSAN 2008
  • Māris Zaharovs

    Māris Zahar

    28 Mayıs 2008