Teil-feld



  • hi, ich habe ein problem dass ich vorerst mit rekursion lösen möchte, ich rufe die funktion mit einem referenz parameter eines feldes auf. Beim nächsten mal soll nur ein teil des Feldes übergeben werden, sodass es innerhalb der funktion als neues eigenständiges feld behandelt wird aber trotzdem direkt auf das array zugreift. Gibt es da einen Befehl oder so etwas? eine möglichkeit wie bei string der Substring() ?? danke im voraus



  • Zeig doch mal deinen Code.Hol dir doch einfach den Teil den du brauchst aus der Liste raus, speicher es in einer neuen und übergib das der Funktion.
    Eventuell erklärst du warum du das machen willst, vielleicht gibt es ja einen weg ohne Rekursion



  • Also ich will es erst mal rekursiv machen weils einfacher ist fürs erste, iterativ werde ich danach machen, ich will zeichen für zeichen vergleichen, also quasi compareTo machen aber halt selbst machen, im moment ist das was ich hab noch ein wenig umständlich und auch nicht fertig bzw. richtig naja code:

    public static void Sort(ref string[] Feld, int von, int bis, int wo)
            {
                for (int i = 0; i < Feld.Length; i++)
                {
                    for (int j = 0; j < Feld.Length - i - 1; j++)
                    {
                        if (Feld[j][wo] > Feld[j + 1][wo])
                        {
                            string help = Feld[j];
                            Feld[j] = Feld[j + 1];
                            Feld[j + 1] = help;
                        }
                    }
                }
                bool tausch = false;
                for (int i = 0; i < Feld.Length - 1; i++)
                {
                    if (Feld[i][wo] != Feld[i + 1][wo] && wo < 8)
                    {
                        tausch = true;
                        bis = i;
                        Sort(ref Feld, von, bis, wo + 1);
                        von = bis;
                    }
                }
                if (tausch == false && wo < 8)
                {
                    Sort(ref Feld, von, bis, wo + 1);
                }
            }
    


  • Du musst eigentlich dein Stringfeld nicht als ref übergeben, schließlich ist String ein Referenztyp an dem jede Änderungen immer vollzogen werden.
    Bzw so ist das ja nicht richtig, es werden neue Strings erstellt, aber wenn du die zeichen veränderst sollte sich das sofort auf dien Originial auswirken


Anmelden zum Antworten