0

是的,我意识到这方面有很多事情,但它们对我不起作用。

        if (textBox1 != null)
        {
            string text = textBox1.Text;
            foreach (string s in apple)
            {
                if (s.Contains(text))
                {
                    listBox1.Items.Add(s);
                }
            }
        }

在列表框中,我有:“Bob”和“Joe”。文本框搜索名称,但如果我输入“joe”,那么它不会显示 joe 的名字,但是,如果我输入“Joe”,它会显示名字。

4

4 回答 4

3

尝试ToLower()所有:

if (s.ToLower().Contains(text.ToLower()))
于 2013-10-20T14:35:00.967 回答
2

ToLower()如果你想要所有字母都小写或者ToUpper()你想要所有字母大写,你可以使用字符串方法

前任:

if(txt!=null)
{
    string text=txt.Text.ToLower();
    foreach(string s in apple)
       if(s.ToLOwer().Equals("YourString")
           lst.Items.Add(s);
}
于 2013-10-20T14:34:53.420 回答
1

不幸的是,该String.Contains方法没有一个重载,它接受一个StringComparison参数来允许不区分大小写的比较。但是,您可以改用该String.IndexOf方法。

if (s.IndexOf(text, StringComparison.OrdinalIgnoreCase) >= 0)
于 2013-10-20T14:42:12.937 回答
0

使用String.IndexOf代替 StringComparison 重载 -

if(s.IndexOf(text, StringComparison.InvariantCultureIgnoreCase) != -1)
{

}

将此作为扩展方法添加到您的项目中,我觉得应该已经存在 -

public static class StringExtensions
{
    public static bool Contains(this string value, string valueToCheck, 
                                StringComparison comparisonType)
    {
        return value.IndexOf(valueToCheck, comparisonType) != -1;
    }
}

现在您可以从您的方法中像这样使用它 -

if (s.Contains(text, StringComparison.InvariantCultureIgnoreCase))
于 2013-10-20T14:43:44.117 回答