删除c#中字符串中前导特殊字符的最快方法

我正在使用c#,我有一个字符串

-Xyz --Xyz ---Xyz -Xyz-Abc --Xyz-Abc 

我只想删除任何前导特殊字符,直到字母表出现, 注意:字符串中间的特殊字符将保持不变。 最快的方法是什么?

您可以使用string.TrimStart并传入要删除的字符:

 var result = yourString.TrimStart('-', '_'); 

但是,如果要删除的特殊字符数众所周知且很小,这只是一个好主意。
如果不是这样,您可以使用正则表达式:

 var result = Regex.Replace(yourString, "^[^A-Za-z0-9]*", ""); 

我更喜欢这两种方法:

 List strings = new List() { "-Xyz", "--Xyz", "---Xyz", "-Xyz-Abc", "--Xyz-Abc" }; foreach (var s in strings) { string temp; // String.Trim Method char[] charsToTrim = { '*', ' ', '\'', '-', '_' }; // Add more temp = s.TrimStart(charsToTrim); Console.WriteLine(temp); // Enumerable.SkipWhile Method // Char.IsPunctuation Method (se also Char.IsLetter, Char.IsLetterOrDigit, etc.) temp = new String(s.SkipWhile(x => Char.IsPunctuation(x)).ToArray()); Console.WriteLine(temp); }