字符串包含c# WPF方法

本文关键字:方法 WPF 包含 字符串 | 更新日期: 2023-09-27 18:08:15

我有一个过滤列表框结果的文本框,如果我键入所有大写,它将不返回任何东西,但所有小写将返回。我想看看我是不是漏掉了什么。以下是我使用的

感谢
private void Filter(object sender, FilterEventArgs e)
{
    var src = e.Item as Users;
    if (src == null)
        e.Accepted = false;
    //else if (src.Name!= null && !src.Name.Contains(Search))
    else if (src.Name!= null && !src.Name.ToLower().Contains(Search))
        e.Accepted = false;
}

字符串包含c# WPF方法

内部字符串。Contains使用IndexOf和OrdinalCompare枚举实现。
因此,您的代码可以更改为使用简单的IndexOf,而不会产生ToLower方法所要求的惩罚,即返回原始字符串的新副本。

if (src == null || string.IsNullOrEmpty(src.Name))
    e.Accepted = false;
else if (src.Name.IndexOf(Search, StringComparison.CurrentCultureIgnoreCase) < 0)
    e.Accepted = false;

字符串是不可变的,这意味着一旦创建,您就不能更改字符串。
ToLower这样的方法实际上创建了一个新的字符串对象来保存小写类型的新字符序列,并返回这个新对象。

把你的搜索也改成小写

        else if (src.Name!= null && !src.Name.ToLower().Contains(Search.ToLower()))
            e.Accepted = false;