【发布时间】:2017-10-08 11:25:36
【问题描述】:
我不敢相信没有聪明的方法可以从二维数组中得到这样的东西,
在这种情况下int[,] a:
"{1,2,3},{4,5,6},{7,8,9}"
我已经阅读了许多类似的问题,并了解到string.Join() 只能用于锯齿状数组(二维)。但我不想使用它们,因为初始化更复杂,而且当我的行(长度相同)分布在内存中的多个位置时感觉很糟糕。
这是我的“正常”代码:
var s = "";
for (int i = 0; i < a.GetLength(0); i++) {
if (i > 0) s += ',';
s += '{';
for (int j = 0; j < a.GetLength(1); j++) {
if (j > 0) s += ',';
s += a[i, j];
}
s += '}';
}
这里是“打高尔夫球”的:
var s = "{";
var i = 0;
foreach (var item in a) s += (i++ > 0 ? i % a.GetLength(1) == 1 ? "},{" : "," : "") + item;
s += '}';
:) - 也不是很优雅,而且可读性很差。
有什么建议吗?我对 Linq 持开放态度,因为它不必很快。我有兴趣提高代码的优雅性,但不仅仅是将其移至扩展方法。
【问题讨论】:
标签: c# arrays linq multidimensional-array tostring