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]

JavaScript für .NET-Entwickler

Sie sind .NET-Entwickler und nun stehen Sie vor der Aufgabe, JavaScript in Ihre Arbeit einzubinden. Die Schulung vermittelt Ihnen die JavaScript Grundlagen und die Funktionen der Scriptsprache. Sie wissen, wie objektorientierte Programmierung in JavaScript funktioniert und lernen abschließend Best Practicies Fälle kennen.

C# 2017/2015/2013 Aufbau

In dieser Schulung lernen Sie fortgeschrittene Techniken im Bereich .Net C#. Dabei stehen neben den eigentlichen Techniken auch architektonische Aspekte im Mittelpunkt.

        /// <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!