Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/330.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 如何通过列表<;字符串>;值作为字符串传递给另一个函数_C#_While Loop - Fatal编程技术网

C# 如何通过列表<;字符串>;值作为字符串传递给另一个函数

C# 如何通过列表<;字符串>;值作为字符串传递给另一个函数,c#,while-loop,C#,While Loop,我有一个列表作为lsSplitMember,我通过while循环将其发送到函数 但它抛出异常消息“索引超出范围。必须为非负且小于集合的大小”。 我已尝试使用以下代码 //Globally declared variable lsSplitMember List<String> lsSplitMember=new List<String>(); int ic = lsSplitMember.Count(); while (ic != 0) { Process_Sp

我有一个
列表
作为lsSplitMember,我通过while循环将其发送到函数 但它抛出异常消息“
索引超出范围
。必须为非负且小于集合的大小”。 我已尝试使用以下代码

//Globally declared variable lsSplitMember
List<String> lsSplitMember=new List<String>();



int ic = lsSplitMember.Count();
while (ic != 0)
{
  Process_Split(lsSplitMember[ic]);
  ic--;
}


Protected void Process_Split(String Member)
{
 //Some Code
}
//全局声明的变量lsSplitMember
List lsSplitMember=新列表();
int ic=lsSplitMember.Count();
while(ic!=0)
{
进程分割(lsSplitMember[ic]);
ic-;
}
受保护的无效进程\u拆分(字符串成员)
{
//一些代码
}
那么我该如何解决这个问题呢

int ic = lsSplitMember.Count();
while (ic != 0)
{
  Process_Split(lsSplitMember[ic-1]); // your index was off-by-one
  ic--;
}
请注意,使用C#语言功能,会产生大量不必要的元代码:

foreach(var text in lsSplitMember)
{
  Process_Split(text);
}
这是一个更容易阅读和更少的错误倾向于写。如果需要将列表倒置,可以先将其反转

请注意,使用C#语言功能,会产生大量不必要的元代码:

foreach(var text in lsSplitMember)
{
  Process_Split(text);
}

这是一个更容易阅读和更少的错误倾向于写。如果需要将列表颠倒,可以先将其反转。

计数比
列表的最后一个索引大一个,因为它们的索引为零,这是您尝试访问的索引。实际上,您应该为此使用迭代器:

foreach( string s in lsSplitMember )
    Process_Split( s );

计数比
列表的最后一个索引大一个,因为它们的索引为零,这是您尝试访问的索引。实际上,您应该为此使用迭代器:

foreach( string s in lsSplitMember )
    Process_Split( s );
试试这个

更改
过程_分割(lsSplitMember[ic])
过程_分割(lsSplitMember[ic-1])

试试这个

更改
过程_分割(lsSplitMember[ic])
过程_分割(lsSplitMember[ic-1])

试试这个

List<String> lsSplitMember=new List<String>();



int ic = lsSplitMember.Count();
while (ic != 0)
{
  ic--;
  Process_Split(lsSplitMember[ic]);

}


Protected void Process_Split(String Member)
{
 //Some Code
}
List lsSplitMember=new List();
int ic=lsSplitMember.Count();
while(ic!=0)
{
ic-;
进程分割(lsSplitMember[ic]);
}
受保护的无效进程\u拆分(字符串成员)
{
//一些代码
}
试试这个

List<String> lsSplitMember=new List<String>();



int ic = lsSplitMember.Count();
while (ic != 0)
{
  ic--;
  Process_Split(lsSplitMember[ic]);

}


Protected void Process_Split(String Member)
{
 //Some Code
}
List lsSplitMember=new List();
int ic=lsSplitMember.Count();
while(ic!=0)
{
ic-;
进程分割(lsSplitMember[ic]);
}
受保护的无效进程\u拆分(字符串成员)
{
//一些代码
}
提供的lsSplitMember不为null


提供的lsSplitMember不为null

。。。除非从最后到第一次处理字符串很重要。。。。除非从最后到第一个处理字符串很重要。