Сведения о вопросе

Oleksandrop

20:12, 24th August, 2020

Теги

c#   .net   arrays    

Печать многомерных массивов .NET

Просмотров: 425   Ответов: 2

Допустим, у меня есть .NET-массив из n измерений. Я хотел бы foreach через элементы и распечатать что-то вроде:

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

И так далее. Я мог бы написать цикл, используя некоторые функции ранга и измерения, чтобы придумать индексы. Есть ли встроенная функция вместо этого?



  Сведения об ответе

ITSME

16:45, 17th August, 2020

Спасибо за ответ, вот что я написал, Пока ждал:

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();
}


  Сведения об ответе

park

16:03, 20th August, 2020

Взгляните на это: может быть полезно для вас.


Ответить на вопрос

Чтобы ответить на вопрос вам нужно войти в систему или зарегистрироваться