我的示例根据输入到文本框中的内容返回XML文件中的数据。问题是如果XML文件包含Jon并且我键入Jon,则会显示XML文件的结果。但是,如果我用小写j键入jon,则不返回任何数据。我怎么能解决这个问题?我在下面提供了我的代码片段:
var query =
from r in document.Descendants("Employee")
where ((string)r.Element("FirstName").Value).Contains(txtSearch.Text)
select new
{
FirstName = r.Element("FirstName").Value,
Age = r.Element("Age").Value
};
答案 0 :(得分:0)
一种方法是使用ToLower()
var query =
from r in document.Descendants("Employee")
where ((string)r.Element("FirstName").Value)
.ToLower()
.Contains(txtSearch.Text)
.ToLower()
select new
{
FirstName = r.Element("FirstName").Value,
Age = r.Element("Age").Value
};
另一种更有趣的方法是推广自己的扩展方法
public static bool ContainsIgnoreCase(this string str, string value)
=> str?.IndexOf(value, StringComparison.OrdinalIgnoreCase) >= 0;
或
public static bool ContainsEx(this string str, string value, StringComparison comparison = StringComparison.OrdinalIgnoreCase)
=> str?.IndexOf(value, comparison) >= 0;