我想用 string.Join() 打印一行二维数组,但我找不到有效的方法。当然,我可以用一个简单的 for 循环来做到这一点,但如果知道是否有办法做到这一点会很有趣。
编辑我说的是普通的多维数组:
int[,] multidimensionalArray= new int[,];
最佳答案
无法从适当的二维数组中分离一行。如果它是一个锯齿状的数组,那么解决方案就很明显了。
因此,如果处理数组的行对您来说很重要,那么您可以考虑将其转换为锯齿状数组。
否则,如果此操作不是最重要的,那么循环是干扰最少的方法。
您可以选择为此目的添加一个简单的扩展方法,这样可以将整个问题隐藏起来:
public static class ArrayExtensions
{
public static IEnumerable<T> GetRow<T>(this T[,] array, int rowIndex)
{
int columnsCount = array.GetLength(1);
for (int colIndex = 0; colIndex < columnsCount; colIndex++)
yield return array[rowIndex, colIndex];
}
}
这会让您选择只处理一行:
IEnumerable<int> row = array.GetRow(1);
例如,您可以在一行代码中打印矩阵中的一行:
Console.WriteLine(string.Join(", ", array.GetRow(1).ToArray()));
关于c# - String.join 二维数组的一维,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42256679/