字符串包含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;
}
内部字符串。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;