我正在使用像这样的“包含”linq属性来显示匹配的数据记录。
a=> a.user.displayname.contains(searchtext);
结果很好但有时a.user.displayname有超过2个空格然后结果没有来。如何修剪数据库数据a.user.displayname。请告诉我。
displayname:
venkatesh duggirala,
mic thomson
数据库数据中的更多空间。
谢谢, Venkat。
答案 0 :(得分:1)
您可以在查询中使用替换
select string = replace(replace(replace(' select single spaces',' ','<>'),'><',''),'<>',' ')
它会将多个空格替换为查询中的单个空格
来源: - Replace duplicate spaces with a single space in T-SQL
同样你也可以使用你的linq Can I use LINQ to strip repeating spaces from a string?
或者你可以使用正则表达式
myString = Regex.Replace(myString, @"\s+", " ");
来源: - How do I replace multiple spaces with a single space in C#?
答案 1 :(得分:1)
a=> a.user.displayname.Replace(" ","").contains(searchtext);
答案 2 :(得分:0)
设置查询以尝试与其他空格进行比较是可能的。但是我没有提出这种方法,因为通过在Linq查询中添加复杂的字符串操作,它会强制C#端拉出完整的数据集,然后遍历结果,并运行可忽略额外空格的其他比较。
有超过一千条记录,这将成为内存和CPU密集型产品,并将在未来为您带来一些非常大的可扩展性问题。我建议您使用sql查询修复数据,并确保任何导入在移动数据时清除额外的空格。