2013-10-27 49 views
2

编辑:如何使案例在敏感的LINQ

也想知道:什么 如果;如果我有一个不是大写的数据?或混合使用大写还是小写?你将如何处理?

我试图查询结果集我

IQueryable<CategoryObject> filteredCategories = _catRepo.GetAllEmployees(); 


filteredCategories = filteredCategories.Where(c=> c.CategoryName.Contains("Blocks")); 

但是,我没有得到任何结果监守类别名称为(大写)在数据库中。我不知道如何使用contains来过滤不区分大小写的字符串?我基本上想要如果某人类型喜欢;

​​

OR

filteredCategories = filteredCategories.Where(c=> c.CategoryName.Contains("blocks")); 

OR

filteredCategories = filteredCategories.Where(c=> c.CategoryName.Contains("blocKS")); 

结果应该是一样的

回答

4

尝试

filteredCategories = categoriesList.Where(c=> c.CategoryName.ToUpper().Contains("BLOCKS")); 

这将删除任何案件问题。

+0

如果;如果我有一个不是大写的数据?或混合使用大写还是小写?你将如何处理? –

+0

没关系。只要将数据库中的值更改为大写,并检查大写字母的值,它就会起作用。例如BLocks将变成BLOCKS并且仍然会匹配。每次只检查一次上限和上限。 – Andrew

+0

我不确定这是正确的方法。 –

2

你还可以尝试:

filteredCategories = categoriesList.Where(c=> c.CategoryName.IndexOf("blocks", StringComparison.OrdinalIgnoreCase) != -1);