2008-08-25 9 views
2

Disons que j'ai un tableau .NET de n nombre de dimensions. Je voudrais foreach à travers les éléments et imprimer quelque chose comme:Impression de tableaux multidimensionnels .NET

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

Et ainsi de suite. Je pourrais écrire une boucle en utilisant les fonctions de rang et de dimension pour trouver les indices. Y a-t-il une fonction intégrée à la place?

Répondre

2

Merci pour la réponse, voici ce que je l'ai écrit en attendant:

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