【发布时间】:2012-07-24 03:56:25
【问题描述】:
我有两种不同类型的对象,它们的 ID 字段可能具有匹配的 ID。 FindAll 操作返回正确的非匹配对象,而 Where 操作返回所有对象。有人可以帮我理解为什么吗?
var _kenticoIDs = new HashSet<string>(_kenticoSessions.Select(p => p.AttendeeInteractiveSessionID));
var list = _aiSessionIDList.FindAll(p => !_kenticoIDs.Contains(p.SessionID));
var ienum = _aiSessionIDList.Where(p => !_kenticoIDs.Contains(p.SessionID));
编辑:如果我对 resultA 变量执行 .ToList() ,则结果列表与结果变量相同。但是,当我在 .ToList() 之前检查两个变量(result/resultA)时,一个有 6 个值,一个有 63 个值。我觉得我错过了一些明显的东西。
【问题讨论】:
-
您的代码目前的格式非常糟糕,以至于无法阅读。请修复它。
-
你是说
_aiSessionIDList.Where(p => !_kenticoIDs.Contains(p.SessionID))会返回_aiSessionIDList中的所有项目,即使列表中的项目的ID 不在_kenticoIDs散列中?