如何以列表匹配字符串的方式對列表進行排序。 想,如果我有在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