Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/331.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 调用索引时ArgumentOutOfRangeException_C#_Indexing_Substring - Fatal编程技术网

C# 调用索引时ArgumentOutOfRangeException

C# 调用索引时ArgumentOutOfRangeException,c#,indexing,substring,C#,Indexing,Substring,我犯了一个非常恼人的错误 我的以下代码是我所拥有的(与1小时前的代码相同) 但现在它在第行抛出if(line.Substring(0,5)=“\tVNUM\t”)ArgumentOutOfRangeException 你知道怎么解决这个问题吗?“\t”有多少索引?可能行的长度小于5个字符。 用以下内容替换您的(如果): if (line.Length >= 5 && line.Substring(0,5) == "\tVNUM\t") \t字符是一个字符,因此它的长度为1

我犯了一个非常恼人的错误

我的以下代码是我所拥有的(与1小时前的代码相同)

但现在它在第
行抛出if(line.Substring(0,5)=“\tVNUM\t”)
ArgumentOutOfRangeException


你知道怎么解决这个问题吗?“\t”有多少索引?

可能
行的长度小于5个字符。
用以下内容替换您的
(如果
):

if (line.Length >= 5 && line.Substring(0,5) == "\tVNUM\t")
\t
字符是一个字符,因此它的长度为
1
char

顺便问一下,你确定每次迭代都需要读两行吗?我指的是以下代码部分:

while ((line = reader.ReadLine()) != null)  // 1st read
{
    line = reader.ReadLine();  // 2nd read
编辑

字符串
“\tVNUM\t”
6
字符长,您知道。将其与5个字符长度的子字符串进行比较没有任何意义。

谢谢您的回答。字符串行是7个字符长,但如果我用你的代码替换我的代码,它只会跳过这个过程..是的。你说得对。它是多余的,但我只放置了两次来测试它,因为字符串
“\tVNUM\t”
6
个字符长。啊,是的。但读取的行是7个字符长(“\tVNUM\t0”),但我认为在粘贴代码并使用索引播放一段时间后,它现在就可以工作了。只需将
5
替换为
if
中的
6
,以比较6个字符。出现异常时,行的值是多少?这将向您显示问题所在。它是“\tVNUM\t0”。。但现在它起作用了。见下文
while ((line = reader.ReadLine()) != null)  // 1st read
{
    line = reader.ReadLine();  // 2nd read