我的代码遇到了一个小问题,我正在阅读文本文件并显示来自用户输入的匹配项。唯一的问题是它区分大小写,例如,如果Steve中的S是小写的话它不会显示匹配,因为它在文本文件中是大写的。这是我正在使用的代码。
string name;
lstResult.Items.Clear();
using (StreamReader sr = File.OpenText("../Name_Check.txt"))
{
while ((name = sr.ReadLine()) != null)
{
if (txtInput.Text == name)
{
lstResult.Items.Add(name);
答案 0 :(得分:4)
试试这个
txtInput.Text.Equals(name, StringComparision.OrdinalIgnoreCase)
您可能需要根据您的文化更改最后一个选项。
答案 1 :(得分:2)
您可以使用String.Equals(string, string, StringComparison)
代替==
对于您的示例,这应该有效:
if (string.Equals(txtInput.Text, name, StringComparison.CurrentCultureIgnoreCase))
(而不是if (txtInput.Text == name)
)
假设您要使用当前线程的当前文化设置。
或者您可以使用Daniel White演示的类似string.Equals()。
答案 2 :(得分:0)
这应该有效(未经过测试!)
string name;
lstResult.Items.Clear();
using (StreamReader sr = File.OpenText("../Name_Check.txt"))
{
while ((name = sr.ReadLine()) != null)
{
if (txtInput.Text.Equals(name, StringComparison.InvariantCultureIgnoreCase))
{
lstResult.Items.Add(name);