字符串匹配异常ArgumentOutOfRangeException

时间:2014-08-24 10:48:29

标签: c# string substring

我在C#控制台应用程序中进行简单的字符串匹配,我希望得到以下异常: 未处理的类型' System.ArgumentOutOfRangeException'发生在mscorlib.dll

后面是额外信息:索引和长度必须引用字符串中的位置。

我不知道如何解释这个......

这是我的代码:

static void Main(string[] args)
{
    var b = "bananas";
    for (int i = 0; i < b.Length; i++)
    {
        for (int j = 0; j < b.Length; j++)
        {
            var current = b.Substring(i, j);
            Console.WriteLine("{0} - {1}", b.Contains(current), current);
        }
    }
    Console.ReadLine();
}

我感兴趣的是错误的原因和解决方法/解决方案 - 即我显然缺乏正确的理解。 提前致谢!

1 个答案:

答案 0 :(得分:3)

String.Substring的第二个参数是Length,因此您传递给Substring的参数会使其失败。

这是您需要的固定线路:

for (int j = 0; j < b.Length - i; j++)

Ideone:http://ideone.com/4Je2MD