2013-10-27 77 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);