C# 如何超出范围索引超出范围。必须为非负且小于集合的大小。参数名称:i

C# 如何超出范围索引超出范围。必须为非负且小于集合的大小。参数名称:i,c#,asp.net,C#,Asp.net,当我运行这段代码时,所有的响应都正常,但如果在我的类中添加了更多响应,它会显示一个错误,我会陷入其中。请帮帮我。我会感谢你的 else if(auths.Count != payable.Length) { for (int i = 0; i < payable.Length; i++) { var item = new PayableTransfers {

当我运行这段代码时,所有的响应都正常,但如果在我的类中添加了更多响应,它会显示一个错误,我会陷入其中。请帮帮我。我会感谢你的

else if(auths.Count != payable.Length)
        {
            for (int i = 0; i < payable.Length; i++)

            {

                var item = new PayableTransfers
                {
                    URN = payable[i].uniqueReferenceNumber,
                    OperationDate = payable[i].operationDate,
                    TransactionCode = payable[i].transactionCode,
                    IsBlocked = payable[i].isBlocked,
                    PaymentMode = payable[i].paymentMode,
                    DestinationCode = payable[i].destinationCode,
                    DestinationAddress = payable[i].destinationAddress,
                    IsIncident = payable[i].isIncident,
                    IsRequestedForCancelation = payable[i].isRequestedForCancelation


                };
                var set = payable[i].uniqueReferenceNumber;
                var setss = sets[i];
                if (setss == set)
                {
                    repositorylist.Update(item);
                }
                else
                {
                    repositorylist.Add(item);
                }

            }
        }
else if(auths.Count!=payment.Length)
{
对于(int i=0;i
您访问的集合索引不包含任何值,您需要检查值

var setss = sets[i];
if(i < payable.length -1 )
{
if (setss.contains(set[i])
{
   repositorylist.Update(item);
}
}
var setss=set[i];
如果(i<应付款长度-1)
{
if(集合包含(集合[i])
{
repositorylist.Update(项目);
}
}

在哪一行中,您的集合可能没有指定的索引?var setss=sets[i];底部第9个数字是的,它有9个元素从数据库中提取,set(response)有13个元素loop工作正常,但当索引达到等于set的值时,它会显示一个错误,只需在分配值之前添加一个检查即可