gpt4 book ai didi

c# - 初始化填充有相同元素的数组

转载 作者:太空宇宙 更新时间:2023-11-03 22:58:37 25 4
gpt4 key购买 nike

var board = Enumerable.Repeat(Enumerable.Repeat('.', 3).ToArray(), 3).ToArray();
board[0][0] = 'Q';

我在这里尝试创建由相同元素填充的数组 (3*3) 组成的数组。但是当我尝试更改一个元素 ([0,0]) 时,它会更改所有三个数组的第一个元素。为什么会这样?如何在没有 2 个循环来启动数组的情况下修复此行为?

最佳答案

因为您创建了一个数组 Enumerable.Repeat('.', 3).ToArray() 并克隆了对该数组的引用 3 次。因此,您对一个值有 3 个引用。您需要初始化每一行:

var board = Enumerable.Repeat((char[])null, 3).ToArray();
for (int i = 0; i < 3; i++)
{
board[i] = Enumerable.Repeat('.', 3).ToArray();
}
board[0][0] = 'Q';

关于c# - 初始化填充有相同元素的数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44181267/

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