SORU
12 Mayıs 2009, Salı


SERİ bir listeden öğeleri kaldırmak için kullanarak<T>

Sorgu gibi SERİ var ki:

var authors = from x in authorsList
              where x.firstname == "Bob"
              select x;

authorsList türü olduğu göz önüne alındığında List<Author>, nasıl sorgu tarafından döndürülen authorsList Author elementler silebilirim içine authors?

Ya da, başka bir deyişle, nasıl authorsList Bob'un tüm silebilirim?

Not: Bu soruyu amaçları için basitleştirilmiş bir örnektir.

CEVAP
12 Mayıs 2009, Salı


Peki, daha kolay onları dışlamak olur

authorsList = authorsList.Where(x => x.FirstName != "Bob").ToList();

Ancak, bu sadece bir önceki koleksiyonundan yazarlar kaldırmak yerine authorsList değerini değiştirmek istiyorsunuz. Alternatif olarak, RemoveAll kullanabilirsiniz:

authorsList.RemoveAll(x => x.FirstName == "Bob");

Eğer gerçekten başka bir koleksiyon dayalı yapmak gerekirse, bir HashSet, RemoveAll ve İçerir kullanmak istiyorum:

var setToRemove = new HashSet<Author>(authors);
authorsList.RemoveAll(x => setToRemove.Contains(x));

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

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • Keith Anthe

    Keith Anthe

    26 NİSAN 2011
  • LiquidMusick

    LiquidMusick

    23 Aralık 2010
  • vgeller1

    vgeller1

    22 Kasım 2009