在多维数组(C#)的特定维度中计数项
我使用多维数组来跟踪答案:在多维数组(C#)的特定维度中计数项,c#,arrays,count,multidimensional-array,C#,Arrays,Count,Multidimensional Array,我使用多维数组来跟踪答案: public string[,] answersArray = new string[50, 10]; 数组的第一个维度跟踪问题(最多50个问题),而第二个维度跟踪每个问题的答案(最多10个)。 每个问题的答案数量是可变的。 加载一个问题后,我想确定该特定问题的答案数量。然后我可以在for循环中使用这个数量来加载和显示这些答案。 有没有一个简单的方法来获得这个,或者我必须自己写一些东西? 我知道我可以声明另一个数组来跟踪每个问题的答案数量,然后用它来完成,但我只是想
public string[,] answersArray = new string[50, 10];
数组的第一个维度跟踪问题(最多50个问题),而第二个维度跟踪每个问题的答案(最多10个)。
每个问题的答案数量是可变的。
加载一个问题后,我想确定该特定问题的答案数量。然后我可以在for循环中使用这个数量来加载和显示这些答案。
有没有一个简单的方法来获得这个,或者我必须自己写一些东西?
我知道我可以声明另一个数组来跟踪每个问题的答案数量,然后用它来完成,但我只是想知道是否有一个更简单的解决方案。听起来你不想要当前的矩形数组,而是一个数组数组,例如
var dim1 = answersArray.GetLength(0); // 50
var dim2 = answersArray.GetLength(1); // 10
然后,您可以使用适当大小的数组填充每个数组
然而,另一种选择是避免完全使用数组-使用List
,它将根据需要增长。特别是,您可能需要一个列表
,其中问题
包含问题文本本身和列表
如果你真的想坚持原来的方法,那么显然你知道数组的每一行有10个元素——你必须循环找到第一个null
值(如果有),以指示实际填充了多少个答案。我在其他地方也找到了这个答案,但正如我所说的,数组第二维度中的答案数量是可变的。问题1可能有4个答案,而问题2可能有6个答案,而问题3可能有10个。参考John skeets的答案:)回想起来,使用列表确实会更好。自从我上次用C#编写代码以来已经有一段时间了,由于我正在编写的应用程序非常小,我开始使用数组。感谢您的洞察力,这非常有帮助!
string[][] answers = new string[50][];