resultList is an IQueriable<foo>
用作具有过滤选项的网格的结果。其中一个过滤器是项目过滤器。
foo.projects
是一个字符串,是由逗号分隔的项目组成的字符串
例如:
foo.projects = "project1,project2,project3";
filterProjects是List<string>
使用此代码过滤成功,但由于我使用的是ToList(),因此无法再将resultList用作分页目的
resultList = resultList.Where(x => (x.projects.Split(',').ToList().Intersect(filterProjects).Count() > 0));
我的问题是:这可以在将resultList保持为IQueriable
(不使用ToList()
)的情况下完成吗?
答案 0 :(得分:2)
试试这个
if (search_code.value.toLowerCase() == insert_code.value.toLowerCase()) {
<强>更新强>
正如Mihai Labo所指出的,这不适用于LINQ to Entities,因为Split()无法转换为商店表达式。
假设过滤器名称没有彼此包含(请参阅注释),那么可以重新设计解决方案(以LINQ to Entities工作)
resultList.Where(x => x.Projects.Split(',').Any(p => filterProjects.Any(fp => fp == p)))