方法来验证数组字符串值

本文关键字:字符串 数组 验证 方法 | 更新日期: 2023-09-27 18:00:38

我有一个方法,我希望能够验证该方法中的字符串数组。但是,如果字符串数组增加和减少值的数量,我该怎么做呢?例如,一个字符串可能有2个项目,下一个字符串数组中可能有3个项目??

如果我有一个大于方法内部的字符串,我会得到错误:System.IndexOutOfRangeException:Index在数组的边界之外。到目前为止,我的方法是:

string1 = "item1, item2";
string2 = "item01, item02, item03";
private void VerifyArrayString(string theString)
{
    var elements = theString.Splitnew[] { ',' }, System.StringSplitOptions.RemoveEmptyEntries);
    for(int i=0; i<elements.Length; i +=1)
    {
       if(elements[0] != null)
       {
           //do something
       }
           if(elements[1] != null)
           {
               //do something
           }
               // and so and so with the next items....
    }
}

方法来验证数组字符串值

如果你问如何确保你有足够的元素来做你想做的事情,你必须做这样的事情:

string string1 = "item1, item2";
string string2 = "item01, item02, item03";
private void VerifyArrayString(string theString)
{
    var elements = theString.Split(new[] { ',' }, System.StringSplitOptions.RemoveEmptyEntries);
    if (elements.Length >= (minimumNumber))
    {
        for (int i = 0; i < elements.Length; i += 3)
        {
            if (elements[0] != null)
            {
                //do something
            }
            if (elements[1] != null)
            {
                //do something
            }
            // and so and so with the next items....
        }
    }
}

或者,如果你想改变一些数字,而不是全部,你必须仔细检查你正在改变的每个数字,并确保你有正确的长度,例如:

if(elements.Length > 0 && elements[0] != null)
{
    //do something
}
//etc etc etc

为清晰起见进行了修订:

根据您的注释,每次尝试操作数组的某个值时,您都需要检查数组长度。以下是示例代码:

string string1 = "item1, item2";
string string2 = "item01, item02, item03";
private void VerifyArrayString(string theString)
{
    var elements = theString.Split(new[] { ',' }, System.StringSplitOptions.RemoveEmptyEntries);
    for(int i=0; i<elements.Length; i++)
    {
       if(elements[i] != null)
       {
           //do something
       }
    }
}

您可以使用LINQ使用Enumerable.Where:进行过滤

private void VerifyArrayString(string theString)
{
    var elements = theString.Split(new[] { ',' }, 
                                   StringSplitOptions.RemoveEmptyEntries);
    foreach (var element in elements.Where(el => !string.IsNullOrEmpty(el))
    {
        if (element == "SomeString")
        {
           // Do Something
        }
    }
}

这将只产生不是null或空字符串的元素。