file.Fileinfo.Name.ToUpper().Contains(textBox1.Text.ToUpper-6ren">
gpt4 book ai didi

c# "like/contains"搜索列表

转载 作者:太空宇宙 更新时间:2023-11-03 18:49:05 25 4
gpt4 key购买 nike

        query = Files
.Where(file => file.Fileinfo.Name.ToUpper().Contains(textBox1.Text.ToUpper()))
.Take(7).ToList();

我讨厌问这个问题,但我根本没有任何进展!这看起来应该是一项微不足道的任务,但我运气不好。

上述查询需要通过文件名列表进行搜索。它将返回列表中的搜索结果,其中包含前 7 个最相关的结果。该事件发生在“KeyPress”。

尽管如此,它非常不精确,并且还发生了一些非常奇怪的结果。

例如:如果我列表中的项目名称为:“ZeroWidthSplit”如果我的文本框包含“Z”,它就可以工作。如果它包含 ZE,它就可以工作。如果它包含“ZER”,它仍然会显示。如果我输入 ZERO,它就会从搜索结果中消失!

所以我想我的问题是:如何搜索文件列表,并使其返回前 7 个最相关的结果。

哦,如果只有 4 个相关结果,那也没关系。限制只有 7 个。

另一个例子:

F.x 如果我写“sum of”作为搜索查询。它返回:

  1. 77 - 质数之和 5000不同的方式
  2. 52 以下连续质数之和一百万

如果我写“sum of p”,它返回:

  1. 77 - 质数之和 5000不同的方式

如果我写“c 的总和”它什么都不返回...

我可以举出更多奇怪的例子。

最佳答案

这个错误听起来确实很奇怪,但正如 Konamiman 指出的那样,稍微重构一下也无妨,尽管我不喜欢使用 ToUpper 或 ToLower。我将按照以下方式进行:

string theText = textBox1.Text;

query = Files
.Where(file => file.Fileinfo.Name.IndexOf(theText,
StringComparison.OrdinalIgnoreCase) != -1)
.Take(7).ToList();

关于c# "like/contains"搜索列表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1721337/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com