【发布时间】:2017-11-06 16:47:16
【问题描述】:
我有两个 IEnumerable 集合(BaseCollectionA 和 BaseCollectionB)。
这些集合的项目是其他集合(SubCollectionA 和 SubCollectionB)。 SubCollections 中可以有一个或多个集合项(对象)。 SubCollections 包含具有我的属性的对象 (MyObject);
我想比较两个 BaseCollection 及其子集合的项目 (MyObjects) 的重复项,即当 BaseCollectionA 的任何子集合中的项目 (MyObject) 等于项目 (MyObject) 时返回 true ) 在 BaseCollectionB 的任何子集合中。
IEnumerable<T> BaseCollectionA
{
IEnumerable<T> SubCollectionA1,
IEnumerable<T> SubCollectionA2,
IEnumerable<T> SubCollectionA3,
...
}
IEnumerable<T> BaseCollectionB
{
IEnumerable<T> SubCollectionB1,
IEnumerable<T> SubCollectionB2,
IEnumerable<T> SubCollectionB3,
...
}
就我而言,性能非常重要,因此最好有最快的解决方案。另外,我更喜欢用方法语法编写 linq。
非常感谢。
【问题讨论】:
-
Stack Overflow不是免费的代码编写服务。您应该尝试自己编写代码。在doing more research 之后,如果您有问题,您可以发布您尝试过的内容,并清楚地解释什么不起作用,并提供一个minimal reproducible example 。我建议阅读How to Ask 一个好问题和the perfect question。另外,请务必使用tour。
-
SelectMany 可能有用
-
您的问题没有很好地说明。在要求其他人为您编写代码之前,请向我们展示您的代码。
-
在什么意义上相等?通过引用还是通过一个或多个键匹配 MyObject 属性?