gpt4 book ai didi

c# - 如何分配给锯齿状数组?

转载 作者:太空狗 更新时间:2023-10-29 21:32:31 26 4
gpt4 key购买 nike

我正在编写一个短程序,最终将播放连接四。

Here it is so far, pastebin

有一处不工作。我在第 16 行声明了一个锯齿状数组:

char[][] board = Enumerable.Repeat(Enumerable.Repeat('-', 7).ToArray(), 7).ToArray();

我认为它看起来像这样:

-------
-------
-------
-------
-------
-------
-------

当我这样做时 board[5][2] = '*' 我得到了

--*----
--*----
--*----
--*----
--*----
--*----
--*----

而不是我想要的:

-------
-------
-------
-------
-------
--*----
-------

目前它是如何运行的(输出应该只有一个星号):


(来源:cubeupload.com)

最佳答案

您正在以错误的方式创建锯齿状数组!

char[][] board = Enumerable.Repeat(Enumerable.Repeat('-', 7).ToArray(), 7).ToArray();

Enumerable.Repeat 将创建一个包含一个重复值的序列。因此,您将创建一个 char[][],其中每个数组都将指向相同的引用。在这种情况下,当您更改其中一个数组时,您将更改所有数组。

您需要以这种方式创建锯齿状数组,array[5][2] 只会更改第 5 个数组:

char[][] array = Enumerable.Range(0, 7).Select(i => Enumerable.Repeat('-', 7).ToArray()).ToArray();

array[5][2] = '*';

关于c# - 如何分配给锯齿状数组?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40644966/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com