【发布时间】:2019-02-15 22:17:17
【问题描述】:
所以我已经四处寻找了很长一段时间,试图找到解决这个问题的方法。 我一直在尝试制作纸牌游戏,但被困在我创建 cad 及其属性的部分。我决定以数组的形式制作它。代码如下:
(不知道这些第一个发生了什么)
string[] dogs = System.IO.File.ReadAllLines(@"C:\Users\corin\Documents\C# coding\dogs.txt");
int individual = totalCards / 2;
Random r = new Random();
int Cards = totalCards / 2;
List<List<int>> playerCards = new List<List<int>>(Cards);
for (int x = 0; x < (Cards-2); x++)
{
playerCards[0].Add(Int32.Parse(dogs[x]));//Cards
playerCards[1].Add(r.Next(1, 6));//Drool
playerCards[2].Add(r.Next(1, 101));//Exercise
playerCards[3].Add(r.Next(1, 11));//Intelligence
playerCards[4].Add(r.Next(1, 11));//Friendliness
}
在我运行代码之前没有引发任何错误,但是当我尝试它时,以下行出现参数超出范围异常: playerCards[0].Add(Int32.Parse(dogs[x])); 我尝试将其删除,但下一行发生了相同的错误。我不确定自己做错了什么,并试图找到解决方案已经有一段时间了。如果有人有任何提示或答案,那就太好了。 谢谢
【问题讨论】:
-
您永远不会在
playerCards中添加任何项目,因此没有可以读取的范围内索引。 -
@AlexeiLevenkov,我相信这不是重复的(至少不是那个问题)。在这个问题中,有人尝试设置容量,但对
new List<List<int>>(Cards)的作用存在误解。 tl;博士:这个问题涵盖了其他问题没有的问题。 -
@dyukha 我不认为暗示 OP 无法阅读文档很好。您应该假设他们在询问之前进行了研究(并检查了文档作为其中的一部分)。大概他们已经阅读了
new List(capacity)initializes … that is empty,所以他们知道该列表是空的 - 可能他们期望 JavaScript 行为会使您的答案不相关。 -
@AlexeiLevenkov,我个人有时会误解文档,所以我认为说有人误解了文档并不令人反感。无论如何,我的观点是其他人可能会犯同样的错误。他们将搜索 SO 以寻找答案,并且对该问题的答案不提供解释,而对此问题提供解释。不要误会,我是第一个讨厌重复的人,我只是认为这个问题涵盖了一些新事物。
-
@dyukha - 欢迎您提出edit 问题以澄清这不是重复的或提出明确询问的新问题(您显然会自己研究,看看是否有人已经问过列出容量和初始化)。到目前为止,OP 没有问你声称他们问了什么,并且在原始副本中明确回答了“如何解决超出范围异常的参数”(我还添加了一个涵盖容量的内容以防万一)
标签: c#