You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在C#二维数组中插入新值?10x10矩阵首行插入字符串问题

问题解决:在10x10矩阵第一行插入"HOUSE"

原代码的核心问题有两个:

  • 你先给第一行位置赋值,但紧接着就用随机字符覆盖了,等于白操作
  • 固定用wordChars[1](也就是字母'O'),根本没按顺序插入"HOUSE"的每个字符

直接上修正后的代码:

Random rchar = new Random();
string word = "HOUSE";
char[] wordChars = word.ToCharArray();
char[,] arr = new char[10, 10];

var rowLength = arr.GetLength(0);
var colLength = arr.GetLength(1);

for (int x = 0; x < rowLength; x++)
{
    for (int y = 0; y < colLength; y++)
    {
        // 第一行前5列放HOUSE,其余位置填随机字符
        if (x == 0 && y < wordChars.Length)
        {
            arr[x, y] = wordChars[y];
        }
        else
        {
            arr[x, y] = (char)(rchar.Next(65, 91));
        }
        Console.Write(arr[x, y] + " ");
    }
    Console.WriteLine();
}

关键修改说明:

  • 增加判断逻辑:遍历到第一行(x==0)且列数在"HOUSE"长度范围内(前5列)时,依次填入H、O、U、S、E
  • 第一行剩余列、其他所有行的位置,统一填充随机大写字母
  • 彻底避免了先赋值再被覆盖的错误

另外你提到用SetValue没生效,其实二维数组是支持这个方法的(比如arr.SetValue(wordChars[y], 0, y);),但原问题根本不是这个方法的问题,而是你的赋值逻辑被后续的随机字符覆盖了。

内容的提问来源于stack exchange,提问作者Dima

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.12 16:00:59