我有一個複雜對象的主列表。Linq Select主列表的子集
我有一個int id的列表,我需要從主列表中選擇相應的複雜對象。
這不起作用
MasterListofComplexObj.Where(u => MasterListofComplexObj.Select(i => i.Id).Contains(ChildListofIntIds));
任何幫助,將不勝感激。
我有一個複雜對象的主列表。Linq Select主列表的子集
我有一個int id的列表,我需要從主列表中選擇相應的複雜對象。
這不起作用
MasterListofComplexObj.Where(u => MasterListofComplexObj.Select(i => i.Id).Contains(ChildListofIntIds));
任何幫助,將不勝感激。
這應該工作:
var results = MasterListofComplexObj.Where(u => ChildListofIntIds.Contains(u.Id));
你在....感謝您的幫助。在我看來,這種邏輯是相反的,你把孩子列表看看是否包含你從肥大列表中選擇的標識。再次感謝 – jim 2012-01-30 19:09:43
是的語法並不是你直覺上所期望的 - 但是因爲你正在逐一查看每個'ComplexObj',它確實有意義 – BrokenGlass 2012-01-30 19:26:26
var results = from obj in MasterListofComplexObj
where ChildListofIntIds.Contains(obj.Id)
select obj;
這是一個IEnumerable。你可能想要.FirstOrDefault()它來獲得一個對象。
轉化爲 MasterListofComplexObj.Where(項目=> ChildListofIntIds.Contains(item.Id))
沒有,如果你想要對象本身和它的屬性不是一個必要的選擇。
尋找到會加入其他更普遍的事情:
var results = MasterList.Join(ChildList, (m => m.Id), (c => c), ((m,c) => m));
我相信,但不能與引文或備份實驗數據,即加入將快於何處 - >包含一塊。
您是否收到錯誤?還是錯誤的結果?你能給一些輸入值和你期望的輸出嗎? – 2012-01-30 19:04:07