c# - 查找两个不同类型列表之间的差异
问题描述
我想在C#
. 性能和优化很重要,因为我必须比较大量元素。
我必须能够从一个列表中获取与另一个列表相关的缺失元素以及存在但不同的元素。
目标是使我的数据库中的数据与REST API
. 我EF Core
在我的服务器上使用,它为我提供了一个TLocal[]
并且REST API
为我提供了一个TRemote[]
. 由于这是定期从 API 检索的大数据,我想避免转换TRemote
为TLocal
比较两个列表。我ID property
对这两种类型都有一个共同点,可以进行比较。
一些考虑的可能性:
HashSet
: 两个列表必须是同一类型才能使用Except/Intersect
。我想保留两种不同的类型。Join-Linq
:这允许使用两个不同类型的列表,但会降低性能。另外,我必须执行两个 Join 来获得两个列表之间的差异(添加/删除)。IEqualityComparer
:Except/Intercept
与自定义一起使用EqualityComparer
来比较两个对象。
还有其他选择吗?
解决方案
推荐阅读
- antlr4 - 无法创建令牌的可选前缀
- delphi - EdsSaveImage 抛出 EDS_ERR_INVALID_HANDLE
- javascript - 赛普拉斯:使用另一个元素作为参考从表中获取一个元素
- reporting-services - 如何将单个 @parameter(n) 值传递给 SSRS 中的查询
- javascript - 将函数结果分配给 JavaScript 中的变量
- javascript - 为什么我的 click() 函数仅适用于调整大小?
- google-bigquery - 架构修改导致分区错误
- ios - 运行代码时出现多个错误,“PNConfiguration 类型的值没有成员 stripMobilePayload”
- javascript - 在 Express 应用程序中开发 REST API 时如何防止端点冲突
- javascript - heroku 错误:at=error code=H10 desc="App crashed" method=GET