我有一个允许的字符列表,我需要一个函数c#,我们可以检查文本是否包含不允许的字符,如果我们发现未授权的字符,我们用回车符替换\r
或{{ 1}})。
例如:
\n
结果如下:
String ListCharactersAllowed = "¥ó;abcdefghijklmnopqrstuvwxyz123456789}{ ";
String input = @"thîs is @ string text";
答案 0 :(得分:0)
您可以使用此LINQ方法:
var newCharacters = input.Select(c => ListCharactersAllowed.Contains(c) ? c : (char)13);
String result = String.Concat(newCharacters);
如果你不能使用StringBuilder
方法使用LINQ,那就更有效了:
var newString = new StringBuilder(input.Length);
foreach (char c in input)
newString.Append(ListCharactersAllowed.IndexOf(c) >= 0 ? c : (char)13);
String result = newString.ToString();
您可以使用ListCharactersAllowed.IndexOf(c) >= 0
代替ListCharactersAllowed.Contains(c.ToString())
来避免(不可用)Enumerable.Contains
来电。前者更有效率。