Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/315.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何在C#中使用trim()消除更多的空格?_C#_String_Linq_Whitespace - Fatal编程技术网

如何在C#中使用trim()消除更多的空格?

如何在C#中使用trim()消除更多的空格?,c#,string,linq,whitespace,C#,String,Linq,Whitespace,我需要获得相同的匹配名称记录。因此,我使用的是containslinq表达式。 前任: a.User.DisplayName.Contains(strDisplayName.Trim()) 但是如果strDisplayname=“AndrewWodd”,则在Andrew和Woddd之间有更多的空格,在这种情况下,它将得到结果 如果名称中有多个空格,如何获得该结果 您可以使用正则表达式来规范化空白: Regex.Replace(input, "\s+", " "); 您可以使用正则表达式来规范化

我需要获得相同的匹配名称记录。因此,我使用的是
contains
linq表达式。 前任:
a.User.DisplayName.Contains(strDisplayName.Trim())

但是如果strDisplayname=“AndrewWodd”,则在Andrew和Woddd之间有更多的空格,在这种情况下,它将得到结果


如果名称中有多个空格,如何获得该结果

您可以使用正则表达式来规范化空白:

Regex.Replace(input, "\s+", " ");

您可以使用正则表达式来规范化空白:

Regex.Replace(input, "\s+", " ");

使用Regex.Replace并用单个空格替换所有多个空格

var replaced = Regex.Replace(strDisplayName, @"\s+", " ");    
a.User.DisplayName.Contains(replaced);

使用Regex.Replace并用单个空格替换所有多个空格

var replaced = Regex.Replace(strDisplayName, @"\s+", " ");    
a.User.DisplayName.Contains(replaced);

要删除displayname中的多余空格,可以使用正则表达式:

a => Regex.Replace(a.User.DisplayName, @"\s\s+", " ").Trim() == Regex.Replace(strDisplayName, @"\s\s+", " ").Trim()

祝您好运。

要删除displayname中的多余空格,您可以使用正则表达式:

a => Regex.Replace(a.User.DisplayName, @"\s\s+", " ").Trim() == Regex.Replace(strDisplayName, @"\s\s+", " ").Trim()
祝你的任务好运。

使用以下方法:

strDisplayName = string.Join( " ", strDisplayName.Split( (char[])null, StringSplitOptions.RemoveEmptyEntries ) );
这将修剪与已使用的修剪相同的字符(不仅仅是空格),请使用以下命令:

strDisplayName = string.Join( " ", strDisplayName.Split( (char[])null, StringSplitOptions.RemoveEmptyEntries ) );

这将修剪与您已经使用的修剪相同的字符(不仅仅是空格)

多余的空格在哪里,在
strDsiplayName
或记录中?当用户在搜索框中键入“and wod”时,是否应该找到“Andrew Wodd”?您的问题得到了很好的答案,但我想告诉你一件事,也是问题的真正原因,即修剪功能只从开始和结束处删除空格,希望你能找到为什么会出现这种情况,额外的空格在哪里,在
strDsiplayName
或在记录中?当用户在搜索框中键入“and wod”时,应该是“Andrew Wodd”被发现?你的问题得到了很好的答案,但我想告诉你一件事,也是问题的真正原因,即修剪函数只从开始和结束处删除空格,希望你能找到为什么你会出现这种情况,避免正则表达式为+1。@DavidMartin为什么这是一件好事?这段代码不会更快更容易理解。事实上,它将为每个searchRegex创建多个临时字符串。Regex将为每个匹配创建匹配对象,再加上一个列表,再加上每个匹配的临时字符串,再加上一个StringBuilder(用于连接结果)。因此,在正则表达式的情况下,创建的中间对象至少增加了一倍。Join将计算结果字符串的长度,并使用FastAllocateString创建it@PanagiotisKanavos有3个答案都使用正则表达式,看到实现相同目标的其他方法总是很好的。我不想/不想进入regex好/坏的辩论,那不是我的本意。关于这个问题有很多讨论,但提供替代方案可以让开发人员在他们的工具包中使用更多的工具。+1可以避免正则表达式。@DavidMartin为什么这是一件好事?这段代码不会更快更容易理解。事实上,它将为每个searchRegex创建多个临时字符串。Regex将为每个匹配创建匹配对象,再加上一个列表,再加上每个匹配的临时字符串,再加上一个StringBuilder(用于连接结果)。因此,在正则表达式的情况下,创建的中间对象至少增加了一倍。Join将计算结果字符串的长度,并使用FastAllocateString创建it@PanagiotisKanavos有3个答案都使用正则表达式,看到实现相同目标的其他方法总是很好的。我不想/不想进入regex好/坏的辩论,那不是我的本意。关于这个主题有很多讨论,但提供替代方案可以让开发人员在他们的工具包中使用更多的工具。数据库只包含空格a.user.displayname--包含空格。数据库只包含空格a.user.displayname--包含空格.LINQ到实体不能识别方法“System.String Replace”(System.String,System.String,System.String)方法,此方法无法转换为存储表达式。_usersinapplicationroles.All()。其中(a=>a.ApplicationRoleId==iAppRoleId&&(Regex.Replace(a.User.DisplayName,@“\s+”,“”)。Trim()==Regex.Replace(strDisplayName,@“\s\s+”,“”)。Trim()).AsQueryable();获取错误。请更正我的表达式Linq to Entities无法识别方法“System.String Replace(System.String,System.String,System.String)”方法,并且无法将此方法转换为存储表达式。_usersinapplicationroles.All()。其中(a=>a.ApplicationRoleId==iAppRoleId&(Regex.Replace(a.User.DisplayName,@“\s\s+”,“”)。Trim()==Regex.Replace(strDisplayName,@“\s\s+”,“”)。Trim())。AsQueryable();出现错误。请更正我的表达式好吗