删除字符串中除最后一个字符外的字符

Tob*_*bon 2 c# linq string optimization

我正在尝试删除字符 '.' 来自除最后一次出现之外的字符串;例如字符串

12.34.56.78
Run Code Online (Sandbox Code Playgroud)

应该成为

123456.78
Run Code Online (Sandbox Code Playgroud)

我正在使用这个循环:

while (value != null && value.Count(c => c == '.') > 1)
 {
   value = value.Substring(0, value.IndexOf('.')) + value.Substring(value.IndexOf('.') + 1);
 }
Run Code Online (Sandbox Code Playgroud)

我想知道是否有更简洁的方法(也许使用 linq?)来做到这一点而无需显式循环?

(我知道有一个非常相似的问题,但是是关于 perl 的,事情完全不同)

Raw*_*ing 5

int lastIndex = value.LastIndexOf('.');
if (lastIndex > 0)
{
    value = value.Substring(0, lastIndex).Replace(".", "")
        + value.Substring(lastIndex);
}
Run Code Online (Sandbox Code Playgroud)


Tim*_*ter 5

也许是方法和 Linq 的混合string

string str = "12.34.56.78";
Char replaceChar = '.';
int lastIndex = str.LastIndexOf(replaceChar);
if (lastIndex != -1)
{
    IEnumerable<Char> chars = str
        .Where((c, i) => c != replaceChar || i == lastIndex);
    str = new string(chars.ToArray());
}
Run Code Online (Sandbox Code Playgroud)

演示