【发布时间】:2018-05-03 16:50:53
【问题描述】:
我有 2 个 IEnumerable 列表,它们有一个名为 GetId() 的方法,它返回一个 integer。
IEnumerable oldBoats
IEnumerable updatedBoats
我想比较两个列表。如果updatedBoats.getId() 与oldBoats 相比返回一个唯一的ID,我想将它添加到列表中。
所以我这样做了:
IEnumerable<Boat> newBoats = updatedBoats
.Where(c => oldBoats
.Any(d => d.GetId() != c.GetId())
.ToList()
oldBoats 和 newBoats 的当前 ID 是 [1, 2, 3, 4, 5]。我想测试基本情况,但这没有通过。当newBoats 应该返回none 时,它总是返回所有ID 的列表。我对c 和d 的排序是不是错了?
【问题讨论】:
-
Where不返回bool。您的内部Where可能是Any。 -
@MikeMcCaughan 谢谢我更新了问题,但我仍然返回所有整数
-
你的问题没有意义,你说
If newBoats.getId() returns a unique Id,你能解释清楚吗? -
我会尝试使用 Select 从 oldBoats 获取 id,然后在 updatedBoats 上的 where 以检查 id 中没有的内容
-
请向我们提供
GetId()的代码,以及运行该代码时updatedBoats中的内容。