Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/282.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# 检查数组单元格是否有值_C#_Asp.net - Fatal编程技术网

C# 检查数组单元格是否有值

C# 检查数组单元格是否有值,c#,asp.net,C#,Asp.net,我正在获取一个数据字符串,其中每个元素对由“;”分隔性格因此,我将一个字符串拆分为一个数组,以获得每个数据块 每个区块现在由一个标签和值对组成,它们由“:”分隔。但是,最后一个元素常常没有匹配的值。例如: food:cheese name:dave car:renault somethingelse 我抓取这些对并将它们分割成第二个数组,然后通过foreach进行迭代,就像这样 int a=0; string[,] tmpInfo = new string[10, 2]

我正在获取一个数据字符串,其中每个元素对由“;”分隔性格因此,我将一个字符串拆分为一个数组,以获得每个数据块

每个区块现在由一个标签和值对组成,它们由“:”分隔。但是,最后一个元素常常没有匹配的值。例如:

food:cheese
name:dave
car:renault
somethingelse
我抓取这些对并将它们分割成第二个数组,然后通过foreach进行迭代,就像这样

int a=0;
            string[,] tmpInfo = new string[10, 2];
            foreach(var info in details)
            {
                string[] tmp = info.Split(':');

                if (tmp[1].ToString != null)
                {
                  //do something
                }
             }
然而,当我遇到最后一个元素没有分隔符的奇怪场景时,我遇到了一个问题:“索引超出了数组的边界。”

从我的代码中可以看到,我尝试测试数组单元格是否为空。我也尝试过测试一个空字符串,但问题仍然存在


任何建议/指针/解决方案都将不胜感激。

请检查返回数组的
长度,如:

if(tmp.Length == 2) //if it should always be 2

如果字符串中有空字符串或没有分隔符,则数组中会有1个元素。稍后,当您尝试访问索引
1
处的元素时,会出现异常,因为数组基于
0
,并且
tmp[1]
意味着访问返回数组的第二个元素

谢谢。我还尝试了计算单元格的长度,但还是返回了一个错误。我想你必须先测试这个细胞是否存在,然后才能直接测试它。我试试看。