Vb.net 从文本文件修复区分大小写的搜索?

Vb.net 从文本文件修复区分大小写的搜索?,vb.net,Vb.net,几天前,我询问了Stack Overflow,询问如何从搜索文本框中搜索匹配字符串的文本文件。到目前为止,除了搜索是区分大小写的这一事实外,这一点非常有效。我想了一个克服这个问题的方法,但是它不会以我想要的方式起作用 我的想法/解决方案: 如果ListBox.Items.Count=0,则 tbx_FindText.CharacterCasing=CharacterCasing.Upper ElseIf ListBox.Items.Count=0,则 tbx_FindText.Character

几天前,我询问了Stack Overflow,询问如何从搜索文本框中搜索匹配字符串的文本文件。到目前为止,除了搜索是区分大小写的这一事实外,这一点非常有效。我想了一个克服这个问题的方法,但是它不会以我想要的方式起作用

我的想法/解决方案:

如果ListBox.Items.Count=0,则
tbx_FindText.CharacterCasing=CharacterCasing.Upper
ElseIf ListBox.Items.Count=0,则
tbx_FindText.CharacterCasing=CharacterCasing.Lower
如果结束
这实际上会尝试完全大写和小写,但是如果用户键入一个搜索请求,例如“Gsk”,那么“G”是大写的,而其他字符不是(因为字符串是大小写混合的,而不是完全大写或小写的),如果它与文本文件中的字符串不完全相同,会发生什么(无论是完全大小写还是混合大小写,程序都会报告没有搜索结果,如果有-只是使用的搜索算法区分大小写,无法正确识别/搜索

搜索算法代码:

Dim lines1()作为String=IO.File.ReadAllLines(“C:\ProgramData\WPSECHELPER\.data\Outlook文件夹向导\outlookfolders.txt”)
lbx_of l_Results.Items.Clear()
lbx_of l_Results.BeginUpdate()
对于i,整数=0到行1。长度-1
如果行1(i).包含(tbx_FindText.Text),则lbx_of l_Results.Items.Add(行1(i))
下一个
lbx_of l_Results.EndUpdate()
基本上,代码会打开文本文件,其中包含员工执行工作所需的多个Outlook文件夹路径。员工在搜索框中输入对公司名称或参考号的搜索,列表框将填充包含在搜索文本框中输入的关键字的路径的匹配结果

这一部分工作得很好——比如,如果我的搜索是大写的,列表框中不会填充结果,而文本文件中的字符串不是


如果有人能帮助编写(或重构)一段搜索文本文件的代码(如果可能,尽量保持上面的代码)虽然搜索不区分大小写,但非常感谢。

不要使用
ReadAllLines
功能,因为您不需要从文本文件中获取所有行。此功能会加载内存中不必要的所有内容,尤其是在处理大文件时。请使用
ReadLines
其中
获取匹配项的扩展函数:

Dim路径为String=“C:\ProgramData\WPSECHELPER\.data\Outlook文件夹向导\outlookfolders.txt”
Dim搜索为String=tbx_FindText.Text
Dim lines=File.ReadLines(路径)。其中(
函数(l)l.IndexOf(搜索,0,StringComparison.InvariantCultureIgnoreCase)>=0
)托利斯先生
lbx_of l_Results.DataSource=无
lbx_of l_Results.DataSource=行

请参见中的扩展方法示例。当要查找的值由字符串而不是char.Yep表示时,它会添加一个
StringComparison
类型参数。如果
string.Contains(行(i)、tbx\u FindText\u Text、StringComparison.InvariantCultureIgnoreCase)则