1

私は3つのクラスを持っています:

Class 1:
public IEnumerable<double> Values;
public Class2 class2Instance;

Class2:
public string Name;
public Class3 class3Instance;

Class3:
public long Id;
public string Name;

Class1のようなの膨大なコレクションがIEnumerable<Class1>あり、Class3ID があります。効率的な LINQ クエリを使用して、 IDとの一致にClass1関連するすべてのインスタンスを取得するにはどうすればよいですか?Class2Class1

4

2 に答える 2

4

それらのシーケンスしかない場合は、それらすべてを実行する必要があります。

var matches = collection.Where(x => x.class2Instance.class3Instance.Id == id);

これを定期的に行う必要がある場合は、Dictionary<long, Class1>代わりに を作成することをお勧めします。

class2Instance(Norもnull にすることはできないと想定していclass3Instanceます。可能であれば、Aducci のようなコードを使用する必要があります。)

于 2012-06-26T16:56:35.817 に答える
3
var query = from x in class1Enumerable
            where x.class2Instance != null
            where x.class2Instance.class3Instance != null
            where x.class2Instance.class3Instance.id == yourId
            select x;
于 2012-06-26T16:57:29.570 に答える