如何将 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
}
那么我该如何解决这个问题呢?
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 不为空