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

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

myString.Replace ('c', '')

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


当前回答

还可以逐字符重新构建字符串,排除想要删除的字符。

下面是一个扩展方法:

    static public string RemoveAny(this string s, string charsToRemove)
    {
        var result = "";
        foreach (var c in s)
            if (charsToRemove.Contains(c))
                continue;
            else
                result += c;

        return result;
    }

它既不圆滑也不花哨,但效果很好。

像这样使用:

string newString = "My_String".RemoveAny("_"); //yields "MyString"

其他回答

没有空字符这种东西。它总是包含一些东西。甚至“\0”也是一个字符。

使用Char。MinValue,它的工作原理与“\0”相同。但要注意它与String.Empty不同。

你可以使用可空字符。

char? c

不是回答你的问题,但表示一个默认字符,你可以使用just

default(char)

这和char是一样的。MinValue,与\0相同。但是不应该将它用于空字符串之类的东西。

还可以逐字符重新构建字符串,排除想要删除的字符。

下面是一个扩展方法:

    static public string RemoveAny(this string s, string charsToRemove)
    {
        var result = "";
        foreach (var c in s)
            if (charsToRemove.Contains(c))
                continue;
            else
                result += c;

        return result;
    }

它既不圆滑也不花哨,但效果很好。

像这样使用:

string newString = "My_String".RemoveAny("_"); //yields "MyString"