我有兩種不同類型的對象,它們具有可能匹配ID的ID字段。 FindAll操作返回正確的非匹配對象,而Where操作返回所有對象。有人能幫我理解爲什麼嗎?Linq 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。我覺得我失去了一些明顯的東西。
您的代碼目前*可怕*格式,以至不可讀。請修復它。 – 2012-07-23 19:33:13
你是說'_aiSessionIDList.Where(p =>!_kenticoIDs.Contains(p.SessionID))'返回'_aiSessionIDList'中的每一項,即使列表中的某個項目的ID不在'_kenticoIDs'哈希中? – 2012-07-23 19:36:26