我有一个List<Organisation>
组织。Linq通过比较两个int类型的列表来选择对象
每个Organisation
有一个属性List<int> Categories
。
我也有一个单独的List<int> DisplayCategories
我想创建一个新的名为List<Organisation>
DisplayOrganisations
。
DisplayOrganisations
将包含Organisation
的谁的Categories
出现在我的List<int> DisplayCategories
。
如何使用linq或lambda来实现这个功能?
以下是不正确的:
DisplayOrganisations = (from o in Organisations
where o.Categories.Intersect(DisplayCategories.CategoryIds)
select o).ToList();
我得到一个错误:
Cannot implicitly convert type 'System.Collections.Generic.IEnumerable' to 'bool'
我认为,这是因为我选择机构是谁的分类的子列表需要被比作一个单独列表DisplayCategories。
任何想法?
请不要使用secon d的方法在我的答案中。使用第一个。由于其经过验证的Intersect更适合大型收藏。再次看到答案。 –
@ M.kazemAkhgary谢谢你,我已经修改我的代码来使用相交,就像你的更新, – fourbeatcoder