我必须检查asp.net中的字符串数组
的条件条件是我可以有两个值 360__image.jpg 和 image.jpg 。
我必须从条件
public string splitString(string str)
{
string[] FileName = str.Split('_');
if (FileName[2] != "")
{
return FileName[2];
}
else
{
return FileName[0];
}
}
上面代码的问题是我收到了错误
Index was outside the bounds of the array
答案 0 :(得分:2)
您应该在从数组访问元素之前检查长度,这就是您获得异常的原因,因为split可能导致两个元素的数组。
不完全确定您的要求,但我认为您可以简化您的方法:
public string splitString(string str)
{
if (str.Contains("_")) //or check for 360__
return str.Substring(str.LastIndexOf('_') + 1);
else
return str;
}
答案 1 :(得分:1)
您可以使用LastIndexOf
:
public string splitString(string str)
{
return str.Substring(str.LastIndexOf('_') + 1);
}
甚至可以使用LINQ Last
:
public string splitString(string str)
{
return str.Split('_').Last();
}
答案 2 :(得分:0)
数组有2个元素,表示同义词0和1。
但您已将代码视为FileName[2]
。
这第二个索引可能是错误的,这就是错误的原因。它可能是1。
尝试:
public string splitString(string str)
{
string[] FileName = str.Split('_');
if (FileName[1] != "")
{
return FileName[1];
}
else
{
return FileName[0];
}
}