我有一个ObservableCollection,其中包括另一个ObservableCollection。

ObservableCollection<MyModel> models = new ObservableCollection<MyModel>();


我的模型如下所示:

public class MyModel
{
    public ObservableCollection<MyModel2> list2 { get; set; }
    public string Property1 { get; set; }
}

public class MyModel2
{
    public string Property2 { get; set; }
    public string Property3 { get; set; }
}


现在,我想在“ Property2” ==“ test1”和“ Property3” ==“ test2”的模型中找到所有MyModel2项目

我知道如何仅在一个list2中进行搜索以找到正确的项目,但是我想在models-collection中的所有“ list2”中进行搜索。

var result = from mod
             in list2
             where mod.Property2 == "test1" && mod.Property3 == "test2"
             select mod;


任何帮助将不胜感激。

最佳答案

听起来您想要这样的东西:

var query = from model in models
            from model2 in model.list2
            where model2.Property2 == "test1" && model2.Property == "test2"
            select model2;


或采用非查询表达式形式:

var query = models.SelectMany(model => model.list2)
                  .Where(model2 => model2.Property2 == "test1"
                                   && model2.Property == "test2");

10-07 13:43