向锯齿数组中添加项目

4

我已经查看了一些有关数组的主题,但仍然感到困惑。

我希望向我的锯齿数组添加一行 - 但是在获得正确语法方面遇到了困难。

        int[][] intJaggedArray = new int[7][];

        intJaggedArray[0] = new int[3] { 1, 1, 1 };
        intJaggedArray[1] = new int[3] { 2, 2, 2 };
        intJaggedArray[2] = new int[3] { 3, 3, 3 };
        intJaggedArray[3] = new int[3] { 4, 4, 4 };
        intJaggedArray[4] = new int[3] { 5, 5, 5 };
        intJaggedArray[5] = new int[3] { 6, 6, 6 };
        intJaggedArray[6] = new int[3] { 7, 7, 7 };

所以现在如果我想要添加

        intJaggedArray[0] = new int[3] { 1, 1, 2 };

因此,数组最终的形式如下所示,我该如何实现它 - 提前感谢您 - 来自英国的新手。(提前非常感谢)
        intJaggedArray[0] = new int[3] { 1, 1, 1 };
        intJaggedArray[0] = new int[3] { 1, 1, 2 };
        intJaggedArray[1] = new int[3] { 2, 2, 2 };
        intJaggedArray[2] = new int[3] { 3, 3, 3 };
        intJaggedArray[3] = new int[3] { 4, 4, 4 };
        intJaggedArray[4] = new int[3] { 5, 5, 5 };
        intJaggedArray[5] = new int[3] { 6, 6, 6 };
        intJaggedArray[6] = new int[3] { 7, 7, 7 };

1
“所以数组最终呈现的部分”不是很清楚。那些 ** 标记代表什么?你目前的代码可以替换第一个数组。 - H H
它是编辑器中的粗体出现问题 - 非预期的。 - Gopher2011
在您进行编辑后,样本仍在索引0处具有2行。也许需要明确说明是替换一行还是插入一行? - H H
3个回答

2

你可能想创建一个集合或者一个List<int[]>

然后你可以在特定的索引位置插入一个项目。

List<int[]> x = new List<int[]>();
x.Insert(3, new int[3] { 1, 2, 3 });

2
你想做什么?在0和1之间插入一行吗?还是替换现有的第0行?
你的行:
intJaggedArray[0] = new int[3] { 1, 1, 2 }; 

简单地替换现有的第 0 行。

您无法在数组中插入一行。要这样做,请使用列表:

List<int[]> myList = new List<int[]>();
myList.Add(new int[] {...});
myList.Add(new int[] {...});
myList.Add(new int[] {...});

...

myList.Insert(1, new int[] {...});

如果您想要替换现有的行,则只需:


谢谢大家,这很棒 - 我会尝试使用列表。 - Gopher2011

1
如果您想让初始列表长度可变,那么您不能使用数组,而应该使用List。
代码示例:
List<int[]> intJaggedList = new List<int[]>();
intJaggedList.Add( new int[3] { 1, 1, 1 } );
intJAggedList.Add( new int[3] { 2, 2, 2 } );
...

然后插入您的新数组:

intJaggedList.Insert( 1, new int[3] { 1, 1, 2 } );

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接