这有什么原因吗?我问这个问题是因为如果你需要使用大量的空字符,那么你就会陷入与你使用大量空字符串时相同的情况。

编辑:这种用法的原因是:

myString.Replace ('c', '')

所以从myString中移除所有的'c'实例。


当前回答

从字符串中删除字符最简单的方法是修剪它

Cl = Cl。削减(' ');

删除字符串中的所有空格

其他回答

如果你想删除满足特定条件的字符,你可以使用这个:

string s = "SoMEthInG";
s = new string(s.Where(c => char.IsUpper(c)).ToArray());

(这将在字符串中只留下大写字符。)

换句话说,您可以“使用”字符串作为IEnumerable<char>,对其进行更改,然后将其转换回如上所示的字符串。

同样,这不仅允许因为lambda表达式而删除特定的字符,尽管如果您像这样更改lambda表达式可以这样做:c => c != 't'。

如果你查看文档替换(字符串,字符串)重载字符串。替换您可以在备注部分中看到,如果第二个参数为空,则它将删除您指定的所有实例。因此,如果你使用myString = myString。替换(“c”,零);它会删除字符串中的每一个c。

和这里没有int。empty的原因一样。容器可以为空,标量值不能为空。如果你的意思是0(它不是空的),那么使用'\0'。如果你的意思是null,那么使用null:)

这种用法的原因是:myString。Replace ('c', ") 所以从myString中删除所有的'c'实例。

要从字符串中删除特定的字符,可以使用string重载:

 myString = myString.Replace ("c", String.Empty);

你的语句

 myString.Replace ('c', '\0')

不会删除任何字符。它只会将它们替换为'\0' (End-Of-String, EOS),结果不同。一些字符串操作可能会在遇到EOS时停止,但在. net中,大多数操作将像对待其他char一样对待它。最好尽量避免使用“\0”。

不能回答你的第一个问题-但对于你遇到的特定问题,你可以只使用字符串而不是字符,对吗?:

myString.Replace("c", "")

你为什么不想这么做?