如何在LINQ FindAll的StartsWith中忽略区分大小写?

时间:2014-05-22 18:33:10

标签: c# linq

我有以下代码:

ContactList = ContactList.FindAll(p => p.DeptName.StartsWith(optAlpha.SelectedItem.Value)).ToList();

如果Daprtname =“test”并且optAlpha.SelectedItem.Value = T,则它不起作用。

我尝试使用以下代码,仍然无效。

ContactList = ContactList.FindAll(p => p.DeptName.ToLower().StartsWith(optAlpha.SelectedItem.Value.ToLower())).ToList();

2 个答案:

答案 0 :(得分:15)

只需使用

StartsWith(optAlpha.SelectedItem.Value, StringComparison.InvariantCultureIgnoreCase);

并且在默认比较期间它将忽略该情况。

答案 1 :(得分:2)

无需使用ToLower您只需调用启动的重载并将其作为第二个arg传递给它StringComparison.InvariantCultureIgnoreCase(首先是要比较的字符串)。这是关于字符串比较选项的文档; http://msdn.microsoft.com/en-us/library/system.stringcomparison(v=vs.110).aspx