我尝试使用Linq创建一个10 × 10的锯齿状数组,我想用相同的字母(而不是字符)填充它(现在)。然而,我很难弄清楚如何在同一个Linq语句中填充它。
我现在有(类似于Initialize a Jagged Array the LINQ Way):
public static string[][] computerBoard = new string[10][]
.Select(x => new string[10])
.ToArray();
字符串
但是这创建了一个null
字符串数组。如何修改它以将所有元素设置为与"A"
相同的值?或者我应该使用一个双精度for循环来填充它?
我试着这样做:
public static string[][] computerBoard = new string[10][]
.Select(x => new string[10]
.Select(y => y = "/*my letter*/"))
.ToArray();
型
但它给了我一个错误:
CS0226:无法将类型“System.Collections.Generic. Iclerable []”隐式转换为“string[][String]”。存在显式转换(是否缺少强制转换?)
2条答案
按热度按时间qhhrdooz1#
我觉得这就是你想要的:
字符串
fcwjkofz2#
LINQ真的不是一个合适的工具,它被用来覆盖现有的集合。把它想象成一个更高级的foreach循环。
也就是说,通过使用
Enumerable.Range
,你可以得到你想要的。字符串
这将给你一个给予10 × 10的数组,里面除了字母“a”什么都没有。
此外,我还要注意,LINQ不仅通常是错误的工具,而且它的可读性也不太好。