C# :: Aufgabe #9 :: Lösung #8

10 Lösungen Lösungen öffentlich
#9

Listeninhalt zufällig anordnen

Anfänger - C# von pocki - 27.08.2012 um 20:49 Uhr
Erstelle eine Methode welche die Einträge (vom beliebigen Typ) einer Liste in zufälliger Reihenfolge anordnet. Die zufällige Anordnung soll in einer neu erstellten Liste zurückgegeben werden.
#8
vote_ok
von grinchyy (200 Punkte) - 08.03.2017 um 10:46 Uhr
Quellcode ausblenden C#-Code

namespace training_aufgabe9
{
    class Program
    {
        static void Main(string[] args)
        {

            // Erstellung eines Liste mit 5 Einträgen A-B-C-D-E:
            List<string> l = new List<string>();
            l.Add("A");
            l.Add("B");
            l.Add("C");
            l.Add("D");
            l.Add("E");

            // Konsolenausgabe der Liste vor dem Mischen
            Console.WriteLine("Liste ohne Mischen:");
            Console.WriteLine("-------------------");
            for (int i = 0; i < l.Count; i++)
            {
                Console.WriteLine(l[i]);
            }
            Console.WriteLine("-------------------");

            // Methodeaufruf & Speicherung in neuer Liste:
            List<string> l2 = new List<string>();
            l2 = mischen(l);

            // Konsolenausgabe der Liste nach dem Mischen:
            Console.WriteLine("Liste nach dem Mischen:");
            Console.WriteLine("-------------------");
            for (int i = 0; i < l2.Count; i++)
            {
                Console.WriteLine(l2[i]);
            }
            Console.WriteLine("-------------------");

            Console.Read();
        }

        private static List<string> mischen(List<string> l)
        {

            // Ursprungsliste:
            List<string> ursprungsListe = new List<string>();
            ursprungsListe = l;

            // Zufallsziffer
            Random r = new Random();

            // Neue Liste (gemischt):
            List<string> gemischt = new List<string>();

            // Normale Länge der zu mischenden Liste
            int listLength = l.Count;

            // Vermischungs-Prozess
            for (int i = ursprungsListe.Count; i > 0; i--)
            {
                int zufallszahl = r.Next(0, i);
                gemischt.Add(ursprungsListe[zufallszahl]);
                ursprungsListe.RemoveAt(zufallszahl);
            }

            return gemischt;
        }
    }
}

Kommentare:

Für diese Lösung gibt es noch keinen Kommentar

Bitte melden Sie sich an um eine Kommentar zu schreiben.
Kommentar schreiben