gpt4 book ai didi

.net - 比较两个列表以获取同时出现在两个列表中的对象

转载 作者:行者123 更新时间:2023-12-02 01:03:01 25 4
gpt4 key购买 nike

我有两个相同类别的列表,并且想要生成出现在两个列表中的对象的计数。

Dim repeatingMentions As Integer 
repeatingMentions =currentMentions.Where(Function(m) previousMentions.Contains(m)).Count

调试我可以看到两个列表包含具有完全相同属性值的对象,这是否足以满足包含,因为计数返回为 0。

最佳答案

您必须重写 Equals + GetHashCode 或提供自定义 IEqualityComparer(Of YourClassName) 才能使用 Contains。或者你必须使用 Any:

repeatingMentions  = currentMentions.
Count(Function(m) previousMentions.
Any(Function(p) m.PropertyName = p.PropertyName))

或者您可以通过 Enumerable.Join 加入两个列表:

Dim inBoth = From currMent In currentMentions
Join prevMent In previousMentions
On currMent.PropertyName Equals prevMent.PropertyName
repeatingMentions = inBoth.Count()

关于.net - 比较两个列表以获取同时出现在两个列表中的对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26234532/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com