如何将 List 值作为字符串传递给 Other 函数

本文关键字:字符串 函数 Other List String | 更新日期: 2023-09-27 17:56:18

我有一个List<>作为 lsSplitMember 我正在通过 while 循环将其发送到函数作为字符串。但它抛出异常消息" Index was out of range .必须是非负数且小于集合的大小"。我已经尝试过使用以下代码.

//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
}

那么我该如何解决这个问题呢?

如何将 List<String> 值作为字符串传递给 Other 函数

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);
}

这更容易阅读,并且更容易出错。如果您需要将列表颠倒处理,您可以先将其反转。

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

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

试试这个...

Process_Split(lsSplitMember[ic]);更改为Process_Split(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
}
lsSplitMember.ForEach(s =>
{
    Process_Split(s);
});

前提是 lsSplitMember 不为空