【发布时间】:2020-12-16 04:30:41
【问题描述】:
我正在开发 Windows 窗体应用程序。我想在 ListView 上应用过滤器。要求是在文件夹中搜索具有给定名称的文件时在 windows 中实现搜索功能。
事实证明,Windows 正在使用Relevance Values 来订购找到的文件。
我在想,也许.Net 中有一个内置的解决方案? 如果没有,是否有任何用于该算法的 C# 代码可用于手动排序过滤对象:
var searchFor = "search";
var newList = oldList.Select(x =>x.Contains(searchFor))
.OrderBy(x => RelevanceValues(x,searchFor))
.ToList();
【问题讨论】:
-
您需要一个免费的文本搜索库。尝试 NuGetting“Lucene.Net”。这是一些示例代码:codeclimber.net.nz/archive/2009/09/02/…
-
你的问题解决了吗?
-
@HansPassant 提供的这个链接codeproject.com/articles/21142/… 似乎是对我最好的帮助
-
您是要按相关性对
List<T>或IEnumerable<T>上的搜索结果进行排序,还是要专门寻找Windows 功能以按文件之间的相关性进行搜索?