c# – 有一个String.IndexOf需要一个谓词吗?

前端之家收集整理的这篇文章主要介绍了c# – 有一个String.IndexOf需要一个谓词吗?前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我需要能够说出类似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查找索引的效率…

猜你在找的C#相关文章