我正在使用锯齿状数组并且有一些问题(或者至少我认为我这样做)。这些数组的大小取决于数据库中返回的行数,因此它是非常可变的。我唯一的解决方案是将数组的尺寸设置得非常大,但这似乎......不是最好的做事方式。
int[][] hulkSmash = new int[10][];
hulkSmash[0] = new int[2] {1,2};
如何在不设置尺寸的情况下使用锯齿状数组,或者这只是C#编程的一个事实?
答案 0 :(得分:1)
你有两个选择:
答案 1 :(得分:1)
使用List<T>
和集合的其他示例是继续进行的最佳方式。我有时会找到
List<List<int>> hulkSmash = new List<List<int>>();
语法有点笨拙。幸运的是,有一些选项可以解决这个问题。
我有时使用的第一个选项是制作别名:
using List<List<int>> = HulkSmashCollection;
这可以防止您不得不一直执行嵌套<<<Types>>>
。在您输入List<List<int>>
的任何地方,您都可以改为键入HulkSmashCollection
(或更短的内容)。
第二个选项是将列表列表包含在名为MyHulkSmashes的类中。在这里,您只提供所需的功能/属性,例如Count
或Find()
等。
这两个概念都用于减少屏幕上的代码量,并降低感知复杂性。
答案 2 :(得分:0)
List<List<int>> hulkSmash = new List<List<int>>();
hulkSmash.Add(new List<int>() { 1, 2 });
或
List<int[]> hulkSmash = new List<int[]>();
hulkSmash.Add(new int[] { 1, 2 });
答案 3 :(得分:0)
一组int(例如List)将为您提供所需的灵活性,而不是浪费空间,因为分配的数组比您需要的大得多。