gpt4 book ai didi

c# - 使用 LINQ 进行 AnyCase 搜索

转载 作者:太空宇宙 更新时间:2023-11-03 21:50:27 25 4
gpt4 key购买 nike

我有一个 LINQ 语句如下:

myList = MyList.Where(x => 
x.Name.Contains(SearchValue) ||
x.Address.Contains(SearchValue)).ToList();

我的数据库可以为 Name 字段设置大写或小写,例如“VSTS”或“vsts”
我希望我的 LINQ 语句在任何情况下都能执行。

在上面的 LINQ 语句中,如果我提供的是小写值,而数据库是大写的,则搜索将失败……这是我不想要的。

最佳答案

最好的选择是使用序号不区分大小写的比较,但是 Contains 方法不支持它,所以您的另一个选择是使用 string.IndexOf .

最好将其包装在扩展方法中,例如:

public static bool Contains(this string target, string value, StringComparison comparison)
{
return target.IndexOf(value, comparison) >= 0;
}

所以你可以使用:

myList.Where(x => x.Name.Contains(SearchValue, StringComparison.OrdinalIgnoreCase) ||
x.Address.Contains(SearchValue, StringComparison.OrdinalIgnoreCase));

关于c# - 使用 LINQ 进行 AnyCase 搜索,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14830569/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com