3

別の 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 アイテムを検索したい

正しい項目を見つけるために 1 つの list2 だけを検索する方法は知っていますが、models-collection 内のすべての "list2" を検索したいと考えています。

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

どんな助けでも感謝します。

4

3 に答える 3

4

次のようなものが必要なようです。

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");
于 2012-12-11T12:57:06.503 に答える
1
var result =
    models.SelectMany(item => item.list2.Where(model => model.Property2 == "test1" && model.Property3 == "test2"));
于 2012-12-11T12:59:10.207 に答える
1

Enumerable.SelectManyそしてEnumerable.Where「内部」リスト:

models.SelectMany(m => 
    m.list2.Where(m2 => m2.Property2 == "test1" && m2.Property3 == "test2"));
于 2012-12-11T12:59:25.790 に答える