C#/ LINQ /获取匹配条件的子集合的所有元素?

时间:2010-01-11 19:42:26

标签: c# linq

我有一个:

ObservableCollection<X> x_collection = new ObservableCollection();

public class X
{
    public X() 
    { 
         Items = new ObservableCollection<Y>();
         for(int i = 0; i < 10; i++)
         {

             Items.Add(new Y(i % 2 == 0));
         }
    }
    public ObservableCollection<Y> Items {get; set;}
}

public class Y
{
    public Y() : this(true) {}
    public Y(bool y) { MyProperty = y; }
    public bool MyProperty { get; set; }
}

如何创建一个LINQ查询,该查询将返回IEnumerable或ObservableCollection,它只会获得具有MyProperty == true的Y元素?我确实意识到这可能是一个非常简单的问题,但我对LINQ atm非常困惑。

如果可能的话,我想要一个lambda查询 - 它们让我更容易理解

1 个答案:

答案 0 :(得分:6)

var result = Items.Where( y => y.MyProperty );

var biggerResult = x_collection.SelectMany( x => x.Items.Where( y => y.MyProperty ) );