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,类似 an 的集合IEnumerable<Class1>,并且我有Class3ID。如何使用高效的 LINQ 查询来获取与ID匹配Class1相关的所有实例?Class2Class1

4

2 回答 2

4

好吧,如果你只有一个序列,你必须遍历所有这些:

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

如果您需要定期执行此操作,则可能需要构建一个Dictionary<long, Class1>

(我假设既不是class2Instanceclass3Instance不能为空。如果可以,您将需要使用像 Aducci's 这样的代码。)

于 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 回答