我正在使用多维数组来跟踪答案:
public string[,] answersArray = new string[50, 10];
数组的第一个维度跟踪问题(最多50个问题),而第二个维度跟踪每个问题的答案(最多10个)。 每个问题的答案数量都是可变的。 在加载问题时,我想确定该特定问题的答案数量。然后我可以在for循环中使用该数量来加载并显示这些答案。 有没有一种简单的方法可以获得这个,或者我必须自己写一些东西? 我知道我可以声明另一个数组来跟踪每个问题的答案数量,并使用它来完成它,但我只是想知道是否有更简单的解决方案。
答案 0 :(得分:8)
听起来你不需要像现在这样的矩形阵列,而是数组,例如
string[][] answers = new string[50][];
然后,您可以使用正确大小的数组填充每个数组。
然而,另一种选择是避免完全使用数组 - 使用List<T>
,它会随着你的需要而增长。特别是,您可能希望List<Question>
Question
包含问题文本本身,List<Answer>
(或可能只是List<string>
)包含答案。
需要预先设置数组的事实是他们应该considered "somewhat harmful"的一个原因。
如果确实想要坚持原始方法,那么显然你知道你在数组的每个“行”中都有10个元素 - 你必须循环找到第一个null
值(如果有)表示已填充实际的答案数。
答案 1 :(得分:3)
var dim1 = answersArray.GetLength(0); // 50
var dim2 = answersArray.GetLength(1); // 10