如何在asp.net中检查字符串数组的条件

时间:2013-05-22 06:08:14

标签: c# asp.net conditional-statements

我必须检查asp.net中的字符串数组

的条件

条件是我可以有两个值 360__image.jpg image.jpg
我必须从条件

返回正确的值
  1. 如果字符串有360_image.jpg,我必须只返回image.jpg并剪切360 _
  2. 如果字符串是image.jpg我必须返回相同的image.jpg
  3. 代码

    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
    

3 个答案:

答案 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];
        }
    }