我需要能够说出类似myString.IndexOf(c =>!Char.IsDigit(c))的内容,但是我在.NET框架中找不到任何这样的方法.我错过了什么?
以下作品,但滚动我自己似乎在这里有点乏味:
using System; class Program { static void Main() { string text = "555ttt555"; int nonDigitIndex = text.IndexOf(c => !Char.IsDigit(c)); Console.WriteLine(nonDigitIndex); } } static class StringExtensions { public static int IndexOf(this string self,Predicate<char> predicate) { for (int index = 0; index < self.Length; ++index) { if (predicate(self[index])) { return index; } } return -1; } }
解决方法
MSDN将显示给定类型的所有方法和扩展名:
MSDN String Class
目前还没有一个专门为String描述的扩展方法.正如其他人所说,滚动自己不是一个坏的选择,因为其他选项(除了正则表达式)不是接近优雅.
编辑我错误地使用RegEx查找索引的效率…