选择多个具有相同类型的2个字段

时间:2014-08-19 06:15:28

标签: c# sql lambda

(对不起,如果标题误导。请随意编辑。)

直接举例:

public class A
{
    public ObservableCollection<B> Bs;

    public List<D> getSelectedDs()
    {
        return [Fill in this blank];
    }
}

public class B
{
    public C FirstC;
    public C SecondC;
}

public class C
{
    public ObservableCollection<D> Ds;
}

public class D
{
    public bool IsSelected;
}

所以,我想得到所有D IsSelected==true(来自Bs,FirstC和SecondC结果都加入了)。那么,如何填充A类中<Query here>的{​​{1}}部分?

这是我到目前为止填写的空白:

getSelectedCs()

另外,我想用1个lambda句子来做(如果它使用2个句子,我可以做到。)

我应该在return Bs. [Getting both FirstC and SecondC]. SelectMany(x=>x.Ds). Where(x=>x.IsSelected); 写一下什么? 谢谢。

1 个答案:

答案 0 :(得分:1)

public List<D> getSelectedDs()
{
     return Bs.SelectMany(b => b.FirstC.Ds.Union(b.SecondC.Ds))
              .Where(x => x.IsSelected).ToList();
}