在我正在创建的C#程序中,我有一个使用代码List<List<long>> NumList = new List<List<long>>()
创建的多维列表,该代码将计算值存储在结果的索引处。其输出的一个例子应该是:
{
3: {
5577
},
6: {
348,
157
},
7: {
999999999999
}
}
代码获取数字的长度,转换为单词,然后获取将单词带到4的链长,例如,5577
= five thousand five hundred seventy seven
,这是40个字符长,所以那么得到forty
,长度为5个字符,即five
,长度为4个字符,结束链。
我创建的函数遍历从输入数字到零的每个数字,计算单词链长度并返回最长链以及有关此链中的数字以及有多少数量的信息。为此,我使用以下代码:
public static string getLengthCount(long number)
{
long current = number;
bool notFour = true;
int maxLength = 0;
string num = "";
List<int> UsedNums = new List<int>();
List<List<long>> NumList = new List<List<long>>();
for (int length = 0; notFour == true && current >= 0; length++)
{
int thisLength = getLengthFromLong(current);
if (HumanFriendlyInteger.IntegerToWritten(current).Length == 4) notFour = false;
if (UsedNums.Contains(thisLength))
{
NumList.Insert(thisLength, new List<long> { current });
}
else
{
NumList[thisLength].Add(current);
}
UsedNums.Add(thisLength);
if (thisLength >= maxLength)
{
num += "," + current;
}
maxLength = Math.Max(maxLength, thisLength);
current--;
}
return maxLength + ", by " + NumList[maxLength][0] + " and " + (NumList[maxLength].Count-1) + " more.";
}
然而,这给了我错误Index was out of range. Must be non-negative and less than the size of the collection.
。我已经发现错误来自NumList.Insert
行,并且认为原因是因为我试图在列表中的NumList
列表中创建一个元素&#39; s length - 列表从0开始,然后我在第5个索引处添加一个值,例如。
问题:
有什么办法可以解决这个错误吗?