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

本文关键字:2个 字段 同类型 选择 | 更新日期: 2023-09-27 18:18:40

(抱歉,如果标题误导。请随意编辑

直接到示例:

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;
}

因此,我想获得IsSelected==true的所有D(来自b和FirstC和SecondC的结果)。那么,A类getSelectedCs()<Query here>部分如何填充呢?

这是我到目前为止所做的填充空白:

return Bs.
    [Getting both FirstC and SecondC].
    SelectMany(x=>x.Ds).
    Where(x=>x.IsSelected);

另外,我想在一个lambda句子中完成它(如果使用两个句子,我可以做到)。

我应该在[Getting both FirstC and SecondC]中写什么?谢谢你。

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

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