c# - 如何使用 LINQ 对集合中的每个字符串调用 ToLower()?

标签 c# linq

这是我的查询:

m_SelectedHandler = m_ListOfHandlers.SingleOrDefault(h => h.CountryNames.Contains(country.ToLower());

country 是一个字符串,也是包含上述赋值的方法的参数。 CountryNames 是一个字符串列表。我如何在 CountryNames 中的每个字符串上调用 ToLower 以便我将获得此查询的有效匹配项。是否有更好的方法使用 LINQ 进行不区分大小写的比较?

最佳答案

是的,您可以指定 IEqualityComparer<T> Contains 方法。例如,您可以使用 StringComparer.CurrentCultureIgnoreCase :

m_SelectedHandler = m_ListOfHandlers.SingleOrDefault(h => h.CountryNames.Contains(country, StringComparer.CurrentCultureIgnoreCase));

这也避免了通过调用 ToLower 创建的临时字符串.

关于c# - 如何使用 LINQ 对集合中的每个字符串调用 ToLower()?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2866231/

相关文章:

c# - 使用 Linq 和 SQL 时如何防止将新记录插入表中?

c# - 如何将 bool 转换为可为 null 的 bool(bool?)

c# - Entity Framework 中的导航属性问题

c# - 如何在 Entity Framework 中查询名字和姓氏?

c# - 使用 Azure 中的 Composite C1 中的代码写入文件?

c# - Windows Server 2012 TCP 端口增加直到 CPU 最大化/崩溃

c# - 随机重新排序 LINQ 集合的最快方法?

c# - 将日期和时间字符串加入 DateTime

c# - SignalR 2.0 .NET 控制台客户端

c# - .NET 如何结合 FileSystemWatcher 与 ReadDirectoryChangesW 来监控文件夹/文件打开?