.NET 多维数组打印

.NET Multi Dimensional Array Printing

提问人:Jake Pearson 提问时间:8/26/2008 更新时间:1/24/2013 访问量:2111

问:

假设我有一个 n 个维度的 .NET 数组。我想通过元素进行 foreach 并打印出类似以下内容:

[0, 0, 0] = 2
[0, 0, 1] = 32

等等。我可以使用一些 Rank 和 dimension 函数编写一个循环来得出索引。是否有内置函数?

C# .NET 数组

评论


答:

1赞 Gabriël 8/26/2008 #1

看看这个:可能对你有帮助。

2赞 Jake Pearson 8/26/2008 #2

感谢您的回答,这是我在等待时写的:

public static string Format(Array array)
{
    var builder = new StringBuilder();
    builder.AppendLine("Count: " + array.Length);
    var counter = 0;

    var dimensions = new List<int>();
    for (int i = 0; i < array.Rank; i++)
    {
        dimensions.Add(array.GetUpperBound(i) + 1);
    }

    foreach (var current in array)
    {
        var index = "";
        var remainder = counter;
        foreach (var bound in dimensions)
        {
            index = remainder % bound + ", " + index;
            remainder = remainder / bound;
        }
        index = index.Substring(0, index.Length - 2);

        builder.AppendLine("   [" + index + "] " + current);
        counter++;
    }
    return builder.ToString();
}