修改
也想知道: 如果;如果我有一个不是大写的数据?或混合大小写?你将如何处理这个?
我正在尝试查询我的结果集
IQueryable<CategoryObject> filteredCategories = _catRepo.GetAllEmployees();
filteredCategories = filteredCategories.Where(c=> c.CategoryName.Contains("Blocks"));
但是,我没有得到任何结果,因为数据库中的CategoryName是For(大写)。我不知道如何使用contains来过滤不区分大小写的字符串?如果有人打字,我基本上想要;
filteredCategories = filteredCategories.Where(c=> c.CategoryName.Contains("Blocks"));
OR
filteredCategories = filteredCategories.Where(c=> c.CategoryName.Contains("blocks"));
OR
filteredCategories = filteredCategories.Where(c=> c.CategoryName.Contains("blocKS"));
结果应该是相同的
答案 0 :(得分:4)
尝试
filteredCategories = categoriesList.Where(c=> c.CategoryName.ToUpper().Contains("BLOCKS"));
这将删除任何案件问题。
答案 1 :(得分:2)
您也可以尝试:
filteredCategories = categoriesList.Where(c=> c.CategoryName.IndexOf("blocks", StringComparison.OrdinalIgnoreCase) != -1);
答案 2 :(得分:1)
第一种方式,如前所述 - 使用ToUpper():
var filterString = "bLoCkS"
filteredCategories = categoriesList.Where(c=> c.CategoryName.ToUpper().Contains(filterString.ToUpper()));
另一种方法 - 在数据库(表格,字段)中使用 Case Insensetive 归类(Changing SQL Server collation to case insensitive from case sensitive?)。