C#-Linq:在 linq 中使用 string.equals 进行比较时忽略大小写
C#-Linq: Ignore case when comparing using string.equals in linq
如何在下面的代码中使用 StringComparison
属性?
string _strVariable = "New York";
//nestList is nested list, list of list of objects, city below is an object, not a string
var _countVar = nestList
.SelectMany(list => list)
.Count(city => string.Equals(city, _strVariable));
尝试了以下但它们不起作用,抛出错误。
var _countVar = nestList
.SelectMany(list => list)
.Count(city => string.Equals(city, _strVariable,StringComparison.OrdinalIgnoreCase));
var _countVar = nestList
.SelectMany(list => list)
.Count(city => string.Equals(city, _strVariable,StringComparer.OrdinalIgnoreCase));
你可以这样试试
String.Equals(_strVariable, city, StringComparison.CurrentCultureIgnoreCase)
或使用.ToLower
或.ToUpper
方法,但是,这不是一个好的方法,会导致性能问题。
city.ToUpper() == _strVariable.ToUpper()
已更新
您不能将对象/客户类型与字符串类型进行比较。你可以这样做
.Count(c => string.Equals(c.City, _strVariable,StringComparer.OrdinalIgnoreCase)
-- Let's say You want to compare the City or CityName with the _strVariable
如何在下面的代码中使用 StringComparison
属性?
string _strVariable = "New York";
//nestList is nested list, list of list of objects, city below is an object, not a string
var _countVar = nestList
.SelectMany(list => list)
.Count(city => string.Equals(city, _strVariable));
尝试了以下但它们不起作用,抛出错误。
var _countVar = nestList
.SelectMany(list => list)
.Count(city => string.Equals(city, _strVariable,StringComparison.OrdinalIgnoreCase));
var _countVar = nestList
.SelectMany(list => list)
.Count(city => string.Equals(city, _strVariable,StringComparer.OrdinalIgnoreCase));
你可以这样试试
String.Equals(_strVariable, city, StringComparison.CurrentCultureIgnoreCase)
或使用.ToLower
或.ToUpper
方法,但是,这不是一个好的方法,会导致性能问题。
city.ToUpper() == _strVariable.ToUpper()
已更新
您不能将对象/客户类型与字符串类型进行比较。你可以这样做
.Count(c => string.Equals(c.City, _strVariable,StringComparer.OrdinalIgnoreCase)
-- Let's say You want to compare the City or CityName with the _strVariable