Linq +Contains+ Case Insensitive 检索查询不区分大小写方法
来源:互联网 发布:ubuntu镜像文件安装 编辑:程序博客网 时间:2024/06/09 23:50
通常我们在查询中会只输入关键词来检索,有时候字母会有大小写区分,SQL里面like 是不区分大小写检索的,但是LINQ中会、解决方法如下:
1: 全部转换为大写或者小写进行检索 如:
string name = "Hello";
var employees = context.employees.Where(emp => emp.Name.ToLower().Contains(name.ToLower()));
2:利用Contains 里面的 StringComparer.OrdinalIgnoreCase 来判断
StringComparer.OrdinalIgnoreCase的解释:https://msdn.microsoft.com/zh-cn/library/5hc8kytd(v=vs.110).aspx
List<string> list = new List<string>() { "a", "b", "c", "d", "e" };
string value = "A";
if (list.Contains(value, StringComparer.OrdinalIgnoreCase))
Console.WriteLine(value + "在列表中!");
else
Console.WriteLine(value + " 不在列表中!");
3:扩展一个方法利用StringComparison 枚举 来进行判断比较
StringComparison 枚举的解释:https://msdn.microsoft.com/zh-cn/library/system.stringcomparison(v=vs.110).aspx public static bool Contains(this string src, string toCheck, StringComparison comp)
{
return src.IndexOf(toCheck, comp) >= 0;
}
4:利用indexof+CompareOptions.IgnoreCase 进行不区分大小写比较后 大于等于0来判断
getStockData = getStockData.Where(p => CultureInfo.CurrentCulture.CompareInfo.IndexOf(p.Descr_C, strSkuContent, CompareOptions.IgnoreCase) >= 0).ToList();
5:利用indexof+StringComparison.OrdinalIgnoreCase进行不区分大小写比较后 大于等于0来判断
getStockData = (from p in getStockData where p.Descr_C.IndexOf(strSkuContent, StringComparison.OrdinalIgnoreCase) >= 0 select p).ToList<SearchExportStock>();
以上5种方法总有一种适合你的。
其他资料参考:
http://stackoverflow.com/questions/15362926/linq-to-entities-contains-case-in-sensitive-searching
stackoverflow.com/questions/27107132/case-insensitive-contains-in-linq
- Linq +Contains+ Case Insensitive 检索查询不区分大小写方法
- 让jQuery的contains方法不区分大小写
- 不要被数据库的collation设置为大小写不敏感(case-insensitive)所欺骗
- XML不区分大小写查询
- oracle 查询不区分大小写
- Oracle10g查询不区分大小写
- sqlite不区分大小写查询
- MySQL查询不区分大小写
- MYSQL查询不区分大小写
- 【MYSQL】查询不区分大小写
- mongodb查询不区分大小写
- 【MYSQL】查询不区分大小写
- sqlserver查询不区分大小写
- 解决SQL2OOO/2005查询不区分大小写的方法
- SQL查询区分大小写方法
- MYSQL 查询区分大小写方法
- SQL查询区分大小写方法
- SQL查询区分大小写方法
- 如何清除电脑屏幕
- 在Mac 上装java jdk 。路径的配置
- 面试——数据结构与算法
- Codeforces#381(Div. 2) B.Alyona and flowers【思维+暴力】
- Linux内核详解(五)
- Linq +Contains+ Case Insensitive 检索查询不区分大小写方法
- 【超全】开发常用工具
- systemd系统守护进程
- Python学习笔记(1)
- 微软等数据结构+算法面试100题(29)--在字符串中删除特定的字符
- win10之缺少一个或者多个协议(只能上qq不能上网)
- Processing-Minim翻译----------Class FFT
- maven中引用net.sf.json jar
- 两个activity之间透明过渡效果和经验