这是一个简单的问题。我有两个列表ListA和ListB,它们都是相同类型的对象,都有键,但其他的都是(除键外)、大小、值等都可以不同.....我想将ListA中的值替换为与之匹配的ListB中的值(没有O(m*n),因为我可以很容易地用循环中的循环来实现),并且应该将确实存在于ListB中但不存在于ListA中的值添加到ListA中,时间复杂度为O(n),所以时间复杂度为O(n *n)。
我尝试使用intersect,但我不知道如何从那里继续前进,我可以得到匹配的行,但如何取代添加他们...是超越我。
1条答案
按热度按时间6xfqseft1#
如果你的类重写了
Equals
和GetHashCode
(以比较Key
)或/和实现了IEqualityComparer<YourClass>
,你可以使用Intersect
和Except
。但是,在这种情况下,你应该使用(左外)Join
,这也是一种基于集合的方法:和一个方法
CompareAndTransferProperties
,它的作用正如它的名字所暗示的那样: