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

如何用LINQ初始化所有元素为同一非默认值的10×10交错数组

解决LINQ创建并填充10×10交错数组的问题

你尝试的第二种写法之所以报以下错误:

CS0226: 无法将类型“System.Collections.Generic.IEnumerable[]”隐式转换为“string[][]”。存在显式转换(是否缺少强制转换?)

是因为内层Select返回的是IEnumerable<string>类型,而非string[],无法直接隐式转换为目标类型的元素。

正确的LINQ写法

只需要在内层的枚举序列后调用.ToArray(),将其转换为字符串数组即可,这里推荐用Enumerable.Repeat来直接生成重复元素的序列,更简洁:

public static string[][] computerBoard = new string[10][]
    .Select(_ => Enumerable.Repeat("A", 10).ToArray())
    .ToArray();

如果坚持用内层Select遍历数组元素赋值,也可以修改为:

public static string[][] computerBoard = new string[10][]
    .Select(_ => new string[10].Select(__ => "A").ToArray())
    .ToArray();

双重循环的替代写法

如果追求逻辑直观或需要后续扩展复杂赋值逻辑,双重循环是更直接的选择:

public static string[][] computerBoard = new string[10][];
for (int i = 0; i < 10; i++)
{
    computerBoard[i] = new string[10];
    for (int j = 0; j < 10; j++)
    {
        computerBoard[i][j] = "A";
    }
}

两种写法性能差异可以忽略,选择哪种取决于代码的可读性和后续维护需求。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.05 03:10:04