SORU
2 Mart 2010, Salı


Seri sorgu listesi listesini içerir

Ben 2 sınıf:

public class ObjectA
{
    public int Id;
    public string Name;
}

public class ObjectB
{
    public int Id;
    public string Name;
    public List<ObjectA> ListOfObjectA;
}

İki liste var: ObjectB (ListObjectB) ve Başka Bir ObjectA (ListOfİdsA denir) kimliği var.listesini içerir Bu ObjectB nerede ObjectB bir listesini almak istiyorum.ListOfObjectA bu ListOfİdsA.

(Yanlış) benim ilk yaklaşım oldu

ListObjectB.Where(p=> ListOfIdsA.Contains(p.ListOfObjectA.Select(b=>b.Id)))

Ama bu tabii ki bir istisna atar. Ben google, stackoverflowed, ama arama yeteneklerimi çok iyi bu gidiş olmadığını düşünüyorum, herkes bu ninja bir awser verebilir misiniz? (Prefereably lambda expression)

CEVAP
2 Mart 2010, Salı


ObjectBs listesini almak için nerede çalışıyorsuntümbu ObjectAs ListOfİdsA vardır yaherhangi bironları?

Ya istediğini düşünüyorum:

ListObjectB.Where(p => p.ListOfObjectA.Any(x => ListOfIdsA.Contains(x.Id)))

ya

ListObjectB.Where(p => p.ListOfObjectA.All(x => ListOfIdsA.Contains(x.Id)))

(Eğer önemli boyutu, btw eğer ListOfIdsA HashSet<string> yapmak isteyebilirsiniz.)

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

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • We've moved!

    We've moved!

    7 Ocak 2008
  • natescamp

    natescamp

    30 NİSAN 2009
  • PaulGBelliveau

    PaulGBellive

    5 Mart 2009