如何从文本文件中读取并显示匹配而不匹配大小写?

时间:2013-05-28 12:18:03

标签: c# streamreader readline

我的代码遇到了一个小问题,我正在阅读文本文件并显示来自用户输入的匹配项。唯一的问题是它区分大小写,例如,如果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);

3 个答案:

答案 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);