加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

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

发布时间:2020-12-15 06:43:54 所属栏目:百科 来源:网络整理
导读:我需要能够说出类似myString.IndexOf(c =!Char.IsDigit(c))的内容,但是我在.NET框架中找不到任何这样的方法.我错过了什么? 以下作品,但滚动我自己似乎在这里有点乏味: using System;class Program{ static void Main() { string text = "555ttt555"; int
我需要能够说出类似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查找索引的效率…

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读