方法来验证数组字符串值
本文关键字:字符串 数组 验证 方法 | 更新日期: 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
或空字符串的元素。