c# - String.join 二维数组的一维

标签 c# multidimensional-array

我想用 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/

相关文章:

javascript - “裁剪”二维数组?

c++ - 如何为一类数值数组同时重载所有数学函数

c# - 属性上的 XElement 默认命名空间提供意外行为

php - 如何通过内键对多维数组进行排序

c# - C# 中字符串连接的内存分配

c# - 将复选框控件添加到列表框

c - 在 C 中使用 strcmp 和 bubblesort 对二维数组进行排序

algorithm - 优化 2D 邻域的效用和罚分

c# - Unity 中的随机生成 (C#)

c# - ZedGraph 饼图上的自定义标签