Feedback

C# - Zweidimensionales Array als "Tabelle" darstellen

Veröffentlicht von am 16.08.2013
(0 Bewertungen)
In manchen Fällen, ist es praktisch, wenn man ein Zweidimensionales Array auch als Zweidimensional darstellen kann. Diese Erweiterungsmethode erfüllt diesen Zweck. Nachfolgend ein Beispielcode zur Verwendung:
            int[,] a = new int[,] { { 1, 2, 3 }, { 4, 5, 6 }, { 7, 8, 9 } };
Console.WriteLine(a.DrawArray2(true));
File.WriteAllText("C:\\test12346784567235632.txt", a.DrawArray2(false));
Console.ReadKey();


Heraus kommt folgendes:
http://code-13.net/Download/Bilder/drawarray2d.png
GFU-Schulungen  [Anzeige]

C# Komplett

Sie kennen sich in objektorientierter Programmierung aus. Sie schreiben C++ oder Java? Und nun stehen Sie vor der Aufgabe, in C# Anwendungen zu erstellen. Das C# Komplett-Seminar verschafft Ihnen umfassende Programmierkenntnisse in dieser Sprache. Nach der Schulung entwickeln Sie selbständig Anwendungen mit C#. Sie kennen die Datentypen und Klassenbibliotheken der objektorientierten Programmiersprache C#. Der Komplettkurs setzt bei den Grundlagen von C# ein. Sie arbeiten mit Variablen und konvertieren Typen. Multithreading, Delegates, Generics sind nach dem Seminar für Sie kein Geheimnis mehr.

VB.NET Aufbau

Sie verfügen nach der Schulung über fundierte Kenntnisse in der Arbeit mit objektorientierten Modellen in VB.NET und können wiederverwendbare Komponenten eigenständig erzeugen.

        /// <summary>
        /// Erstelt eine Zweidimensionale Darstellung eines Zweidimensionalen Array.
        /// </summary>
        /// <typeparam name="T">Der Typ von dem die Elemente in dem Array sind.</typeparam>
        /// <param name="array">Das Array, welches formatiert werden soll.</param>
        /// <param name="console"><c>True</c>, wenn Rahmenelemente verwendet werden sollen. Diese Funktionieren auch in der Konsole. Andernfalls <c>False</c>.</param>
        /// <returns>Eine Zeichenfolge, welche eine Tabellenartige Struktur mit den Elementen von <paramref name="array"/> darstellt.</returns>
        public static string DrawArray2<T>(this T[,] array, bool console)
        {
            string brackets = console ? "┌└│┐┘│" : "⎛⎝⎜⎞⎠⎟";//OL - UL - ML - OR - UR - MR
            StringBuilder sb = new StringBuilder();
            int dx = array.GetLength(0);//Dimensionen ermitteln
            int dy = array.GetLength(1);
            for (int x = 0; x < dx; ++x)
            {
                int len = 0;
                for (int i = 0; i < dy; ++i)
                    len = Math.Max(len, array[x, i].ToString().Length);//Maximale Länge eines Elements in der aktuellen Spalte ermitteln.
                ++len;//Trenendes Leerzeichen

                if (x == 0)//Öffnende Klammer hinzufügen
                    sb.Append(brackets[0]);
                else if (x == dx - 1)
                    sb.Append(brackets[1]);
                else
                    sb.Append(brackets[2]);

                sb.Append(" ");//Leerzeichen als Trennung zur Klammer einfügen

                for (int y = 0; y < dy; ++y)
                {
                    sb.Append(array[x, y].ToString().PadRight(len));
                }

                if (x == 0)//Schließende Klammer hinzufügen
                    sb.Append(brackets[3]);
                else if (x == dx - 1)
                    sb.Append(brackets[4]);
                else
                    sb.Append(brackets[5]);
                sb.AppendLine();//Neue Zeile
            }
            return sb.ToString();
        }

Kommentare zum Snippet

 

Logge dich ein, um hier zu kommentieren!