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]
意味着访问返回数组的第二个元素 谢谢。我还尝试了计算单元格的长度,但还是返回了一个错误。我想你必须先测试这个细胞是否存在,然后才能直接测试它。我试试看。