Eduardo已经给出了获得子串的正确方法 - 我的答案将解释为什么现有的失败.
String.Substring(int, int)采取起始位置和计数.你基本上是在说,"从第9位转到10个字符".该文档明确声明它将抛出:
String.Substring(int, int)
ArgumentOutOfRangeException [if] startIndex加上length表示不在此实例中的位置. -要么- startIndex或length小于零.
ArgumentOutOfRangeException [if]
startIndex加上length表示不在此实例中的位置.
-要么-
startIndex或length小于零.