一个Linq来替换不需要的字符

时间:2014-01-07 01:50:30

标签: c# string linq

我有一个Linq代码来获取可接受的字符并删除其他字符。 但是这段代码用“”代替了其他代码(没有+ null + string.empty等) 我想用space()替换。我该怎么办?

非常感谢。

string clean = new string(incomingText.Where(c => @" 0123456789abcçdefgğhıijklmnöopqrsştuüvwxyz".Contains(c)).ToArray());

1 个答案:

答案 0 :(得分:7)

你可以使用:

// Alternatively use a HashSet<char>
string acceptableCharacters = " 1234...";
string clean = new string(incomingText.Select(c => acceptableCharacters.Contains(c) ?
                                                   c : ' ')
                                      .ToArray());

请注意,这仍然非常有效。我可能会使用Regex.Replace来调用。

Regex invalidCharacterPattern = new Regex("[^ 0-9a-zçğıöşü]");
string clean = invalidCharacterPattern.Replace(incomingText, " ");