将数组分成列表列表

时间:2018-04-07 18:57:55

标签: c#

我试图将名为“UWeights”的数组划分为小部分并将它们存储到列表列表中。每个部分的大小存储在名为“Noofelement”的数组中 所以我为执行此任务编写了以下代码,但是有一个异常被解雇了这个标题“索引超出范围。必须是非负的且小于集合的大小”但我不知道是什么问题。

     List<List<int>> unknownvalues=new List<List<int>>();

     int stindx = 0;
     int loopiteration = 0;
        for (int i = 0; i < 4; i++)
        {
            int nofelement = Noofelement[i];
            while (loopiteration < nofelement)
            {
                unknownvalues[i] = new List<int>();
                unknownvalues[i].Add((int)UWeights[stindx]);
                loopiteration++;
                stindx++;
            }
            loopiteration = 0;
        }

this is the exception,它发生在列表列表中 stindx,Noofelement和UWeights是正确的

这是定义列表列表并添加到列表列表的正确方法吗?

List<List<int>> unknownvalues=new List<List<int>>();

unknownvalues[i] = new List<int>();
unknownvalues[i].Add((int)UWeights[stindx]);

任何帮助
提前致谢

1 个答案:

答案 0 :(得分:1)

unknownvalues正在初始化为空列表,并且没有任何内容添加到其中,因此i将始终位于列表中的值范围之外。

您可以使用unknownvalues.Add(new List<int>())代替unknownvalues[i] = new List<int>()