我在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();
}
我感兴趣的是错误的原因和解决方法/解决方案 - 即我显然缺乏正确的理解。 提前致谢!
答案 0 :(得分:3)
String.Substring
的第二个参数是Length
,因此您传递给Substring
的参数会使其失败。
这是您需要的固定线路:
for (int j = 0; j < b.Length - i; j++)
Ideone:http://ideone.com/4Je2MD