我知道我可以遍历字符串或构建正则表达式或反转集合(毕竟ASCII不是那么大)并搜索第一个实例,但是Yuck.
我正在寻找的是一个漂亮的衬垫.
更少的功能更好,LINQ出局了(对我来说,不要问,这是一个长篇故事)
我要去的解决方案(除非我看到更好的东西)
static int FirstNotMeta(int i, string str)
{
for(; i < str.Length; i++)
switch(str[i])
{
case '\\':
case '/':
case '.':
continue;
default:
return i;
}
return -1;
}
Run Code Online (Sandbox Code Playgroud)
好吧,我作弊,我事先知道我关心的是什么char.
这有效:
public static char FindFirstNotAny(this string value, params char[] charset)
{
return value.TrimStart(charset)[0];
}
Run Code Online (Sandbox Code Playgroud)