如何以列表匹配字符串的方式对列表进行排序。 想,如果我有在C#中排序列表#
"vishal pandey"
字符串,然后列表匹配的项目“维沙尔潘迪”是第一位的,那么它应该表现出含有“维沙尔”和项目包含“潘迪”
这不是项目的结果可能我带来的顺序数据从数据库 目前我正在列表这样
var matchedProjects = (from project in unitOfWork.ProjectRepository.All()
where project.IsActive
&& project is Project
&& (
queryList.Contains(project.Name)
|| project.Name.StartsWith(query)
|| project.Name.Contains(query)
|| project.Name.EndsWith(query)
|| project.ProjectAddress.City.Name.StartsWith(query)
|| project.ProjectAddress.City.Name.Contains(query)
|| project.ProjectAddress.City.Name.EndsWith(query)
|| queryList.Contains(project.ProjectAddress.City.Name)
|| queryList.Contains(project.ProjectAddress.Address1)
)
select project as Project).Distinct().AsParallel().ToList();
-Thanks
你说的“物品”是什么样的?一个'List'和'List <>'自定义对象?你想要比较哪个字段?请详细说明 –
Franck
2014-09-10 11:52:09
@Franck否其对象列表(模型) – 2014-09-10 12:33:04
您应该实现一个方法,在'Project'类中实现部分@Sergey解决方案,该方法将接收查询并检查所需的所有属性并计算匹配项。然后你只需做一个'var listOfProjectThatMatch = unitOfWork.ProjectRepository.All()。ToList()。其中(p => p.GetMatchesQuantity(“vishal pandey”)> 0).ToList()'然后用那个列表过滤掉你可以再次使用匹配数量或其他任何您想要按 – Franck 2014-09-10 12:44:30