C# 方法来验证数组字符串值?
我有一个方法,我希望能够验证方法中的字符串数组。但是,如果字符串数组按值的数量增减,我该怎么做呢?例如,一个字符串可能有2个项,而下一个字符串数组中可能有3个项 如果我有一个字符串大于方法中的字符串,则会得到错误:System.IndexOutOfRangeException:Index超出了数组的边界。 到目前为止,我的方法如下:C# 方法来验证数组字符串值?,c#,validation,C#,Validation,我有一个方法,我希望能够验证方法中的字符串数组。但是,如果字符串数组按值的数量增减,我该怎么做呢?例如,一个字符串可能有2个项,而下一个字符串数组中可能有3个项 如果我有一个字符串大于方法中的字符串,则会得到错误:System.IndexOutOfRangeException:Index超出了数组的边界。 到目前为止,我的方法如下: string1 = "item1, item2"; string2 = "item01, item02, item03"; private void Verify
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....
}
}
string1=“项目1,项目2”;
string2=“item01、item02、item03”;
私有void VerifyArrayString(字符串字符串)
{
var elements=theString.Splitnew[]{',},System.StringSplitOptions.removeMptyEntries);
对于(int i=0;i,您可以使用LINQ过滤:
这只会产生非空的元素。如果你问如何确保你有足够的元素来完成你要做的事情,你必须这样做:
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....
}
}
}
为清晰起见,进行了修订:
根据您的注释,每次尝试操作数组的某个值时,您都需要检查数组长度。以下是示例代码:
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
}
}
}
string1=“item1,item2”;
string string2=“item01、item02、item03”;
私有void VerifyArrayString(字符串字符串)
{
var elements=theString.Split(new[]{',},System.StringSplitOptions.removemptyEntries);
对于(int i=0;i为什么你要增加3而不是1?为什么你不使用i
作为索引?为什么你要增加i
三次?array
s可以更容易地处理。拼写错误。重新检查帖子。这会通过字符串数组检查字符串中是否有2、3或4项吗?@newguyontherock是的。我想能够但要单独超过这些项。@newguyontherock这正是a所需要的。每次迭代,元素
变量将是数组中的下一项。使用我的帖子中的相同方法并用foreach…循环更新它,当我有一个包含三项的字符串数组时,它将失败。错误与我的post。我想在任何字符串数组上使用相同的方法,无论该字符串有两项、三项或四项,或者当超过字符串中的项时,该方法不会失败。当我到达If(元素[4]!-null)时,它会立即出错…因为没有元素可读取该索引。然后您将要使用第二个代码段,检查elements.length>#&elements[#]!=null。但是,如果我要控制台记录元素,它将根据我拥有的元素量输出三次?我不明白您在问什么。您想做什么?
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
}
}
}