这是我的查询:
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/