String IndexOfAny函数异常

时间:2015-05-25 16:51:06

标签: c# string

为什么此代码在运行时会使索引超出范围异常?

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"(字符串开头没有空格)时,它可以正常工作。

2 个答案:

答案 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!");
    }