为什么此代码在运行时会使索引超出范围异常?
class stringcodetesting
{
static void Main(string[] args)
{
string t = " abcdefghigklmnopqrstuvwxyz" ;
string c;
char [] ar = { 'h', '1','2', '3','4'};
c = "aarsa";
Console.WriteLine(t[t.IndexOfAny(ar,0,6)]);
}
}
但是当string t value ="abcdefghigklmnopqrstuvwxyz"
(字符串开头没有空格)时,它可以正常工作。
答案 0 :(得分:3)
因为在t
的前6个字符(.IndexOfAny(..., 0, 6)
)内,ar
中没有任何字符出现。这也反映在-1
的返回值,这意味着没有发现。
答案 1 :(得分:0)
是的,上面已经回答了原因,但这是一个解决方案。
If(t.IndexOfAny(ar,0,6) >= 0)
{
Console.WriteLine(t[t.IndexOfAny(ar,0,6)]);
}
Else
{
Console.WriteLine("No Match!");
}