0

次のようなクラス構造がある場合:

    private class A
    {
        int afoo { get; set; }
        B[] bList { get; set; }
    }

    private class B
    {
        String bfoo { get; set; }
        C[] cList { get; set; }
    }

    private class C
    {
        String cfoo { get; set; }
        int cfoo2 { get; set; }
    }

    public class Master
    {
        A[] aList;

        //qry for all where A.B.C.cfoo = "test"
    }

クラスCのアイテムをクエリする動的LINQステートメントを作成するにはどうすればよいですか?このようなもの

1) var qry = aList.blist.clist.AsQueryable().Where("cfoo = \"Test\"").Select();

私の究極の解決策は、次のように動的な部分でパス全体を渡すことです。

2) var qry = aList.AsQueryable().Where("bList.cList.cFoo = ""Test"").Select();

しかし、私が試したことから、Whereにネストされたオブジェクトを含めることはできません。したがって、上記の1)のように、テンプレートを使用してメソッドを構築します。

[また、動的部分にはScottGuの動的ライブラリを使用しています。]

しかし、私はそれを機能させることができません。助言がありますか?

ありがとう!

4

2 に答える 2

2
aList.SelectMany(a => a.bList)
     .SelectMany(b => b.cList)
     .Where(c => c.cfoo == "\"Test\"");
于 2012-07-13T18:54:16.740 に答える
0

これを試して:

aList.SelectMany(a => a.bList.SelectMany(b => b.cList))
    .Where(c => c.cf002 == "Test")
    .Select();
于 2012-07-13T18:53:25.853 に答える