C# 索引超出访问列表的范围<;列表<;T>&燃气轮机;使用For循环

C# 索引超出访问列表的范围<;列表<;T>&燃气轮机;使用For循环,c#,C#,爱好者在这里开始C#coder。我想我错过了一些基本的东西。我试图通过使用两个for循环通过List>解析来创建一个新列表。我得到的索引超出了范围,尽管从调试中可以看出,[Index][Index]位置的Deal对象中有数据正在被访问 List<List<Deal>> Deals = await Database.LoadRecordsAsync(form, depts); for (int dept = 0; dept &

爱好者在这里开始C#coder。我想我错过了一些基本的东西。我试图通过使用两个for循环通过List>解析来创建一个新列表。我得到的索引超出了范围,尽管从调试中可以看出,[Index][Index]位置的Deal对象中有数据正在被访问

            List<List<Deal>> Deals = await Database.LoadRecordsAsync(form, depts);
            for (int dept = 0; dept <= Deals.Count; dept++)
            {
                List<Deal> batch = new List<Deal>();
                for (int deal = Deals[dept].Count; deal >= 0; deal--)
                {
                    batch.Add(Deals[dept][deal]); // Error here
                }
            }
List Deals=wait Database.LoadRecordsAsync(表单,部门);
对于(内部部门=0;部门=0;交易--)
{
batch.Add(交易[部门][交易];//此处出错
}
}

调试中的事务具有预期的索引和预期的数据。是否初始化错误?

问题在于以下几行:

deal = Deals[dept].Count
该行应更改如下:

deal = Deals[dept].Count - 1
dept < Deals.Count
以及的第一个上限。以下

dept <= Deals.Count

您超出了定义的数组范围。

条件-->
dept
Deals。Count
是以零为基的数组中的元素数。这意味着您的第一个元素实际上是
[0]
而不是
[1]
,因此在
部门也
部门绿色检查之前,您不能进入!谢谢你,真是个愚蠢的错误。有点尴尬,我花了多长时间才问到这里。现在确定为什么我的问题被否决了。我想我不了解这个地方。谢谢你的回答。@ZoomStop不客气。我很高兴我帮了忙。不幸的是,一些用户没有留下任何评论就投了反对票,更不用说任何建设性的评论了。
Deals[dept][deal]