计算多维数组特定维度中的项目(C#)

时间:2011-05-13 08:51:21

标签: c# arrays count multidimensional-array

我正在使用多维数组来跟踪答案:

public string[,] answersArray = new string[50, 10];

数组的第一个维度跟踪问题(最多50个问题),而第二个维度跟踪每个问题的答案(最多10个)。 每个问题的答案数量都是可变的。 在加载问题时,我想确定该特定问题的答案数量。然后我可以在for循环中使用该数量来加载并显示这些答案。 有没有一种简单的方法可以获得这个,或者我必须自己写一些东西? 我知道我可以声明另一个数组来跟踪每个问题的答案数量,并使用它来完成它,但我只是想知道是否有更简单的解决方案。

2 个答案:

答案 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