我有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>
,我有Class3
ID。如何使用有效的LINQ查询来获取与Class1
ID相匹配的所有Class2
个实例?
答案 0 :(得分:4)
如果你只得到了它们的序列,你必须经历所有这些:
var matches = collection.Where(x => x.class2Instance.class3Instance.Id == id);
如果您需要定期执行此操作,则可能需要构建Dictionary<long, Class1>
。
(我假设class2Instance
和class3Instance
都不能为空。如果可以,你需要使用像Aducci这样的代码。)
答案 1 :(得分:3)
var query = from x in class1Enumerable
where x.class2Instance != null
where x.class2Instance.class3Instance != null
where x.class2Instance.class3Instance.id == yourId
select x;