c# - linq 不区分大小写和修剪比较
问题描述
我正在使用linq
查询表。
我的查询过滤器需要比较一些字符串值 - 这种比较不区分大小写并修剪了空格,不仅在我的字符串的开头和结尾,而且在中间,例如。“重庆”或“四川”。我试图解决这个问题,但我发现它不起作用。
string fromLocation = this.uiFromLocation.Text;
string toLocation = this.uiToLocation.Text;
fromLocation = fromLocation.Trim().ToUpper();
toLocation = toLocation.Trim().ToUpper();
var results = from myRow in sectionsDetails.Tables[0].AsEnumerable()
where myRow.Field<string>("LocationFrom").Trim().ToUpper() == fromLocation &&
myRow.Field<string>("LocationTo").Trim().ToUpper() == toLocation &&
myRow.Field<int>("VehicleType") == vehicleType
orderby myRow.Field<DateTime>("ModifiedDate") descending
select myRow;
我猜
myRow.Field<string>("LocationFrom").Trim().ToUpper() == fromLocation
是不正确的?
我该如何进行这项工作?
解决方案
Trim()
仅修剪字符串开头和结尾(前导和尾随)的空格...参见文档
要删除字符串中的空格,您可以使用:
*str*.Replace(" ", "");
Regex.Replace(*str*, @"\s", "")
其中str是字符串。
还可以考虑使用比较方法,例如*str*.Equals(*str2*, StringComparison.OrdinalIgnoreCase)
而不是依靠ToUpper()
. 阅读如何在 C# 中比较字符串,它详细解释了字符串比较。
推荐阅读
- xml-parsing - 没有xpath的xmllint提取值
- java - Cosmos SQL upsert 未按预期工作
- java - 对测试失败进行截图
- javascript - Firefox 中的 HTML 输出元素默认值
- javascript - 自动滚动到页面右侧(取决于图像的大小)
- python - python 3中关于@property的一些疑问
- operating-system - 如何对照 PT 条目检查页码?
- string - Bash:一个、另一个或两个的外壳字符串匹配
- macos - 想知道如何在文件名增加时删除文件?
- gcloud - Google cloud_sql_proxy 让我的连接保持活跃