循环遍历列表会抛出超出界限的异常C#

时间:2015-12-13 19:23:17

标签: c# list loops

有人会帮我理解这个for循环的问题为什么我会超出界限异常吗?

此特定列表的容量设置为8.

public static List<Beds> BedsList = new List<Beds>(8); 

private int GetFirstAvailableBed()
    {
        var result = 0;

        for (int i = 0; i < Beds.BedsList.Capacity; i++)
        {
            if (Beds.BedsList[i] == null) // Here is trhowing the exception
            {
                result = i;
                break;
            }
        }
        return result;
    }

2 个答案:

答案 0 :(得分:7)

使用List.Count代替List.Capacity

Capacity属性

  

获取或设置内部数据结构在不调整大小的情况下可以容纳的元素总数。

它不是列表中的项目数。

答案 1 :(得分:4)

您应该使用List#Count

for (int i = 0; i < Beds.BedsList.Count; i++)