Laden...

Bei bestimmten Parametern meckert Substring

Erstellt von yooti vor 15 Jahren Letzter Beitrag vor 15 Jahren 969 Views
Y
yooti Themenstarter:in
11 Beiträge seit 2009
vor 15 Jahren
Bei bestimmten Parametern meckert Substring

Hallo @All

hier mal mein test Code


                string test1 = listBox_Festplatten.SelectedItem.ToString();
                int len = test1.Length - 1;
                MessageBox.Show(test1.Substring(1, len));

dieses beispiel arbeitet so wie es sein soll ! das erste Zeichen wird von dem string ordnungsgemäß abgeschintten

sobald ich aber die zahl 1 erhöhe z.B. auf 2 geht irgendwas schief


MessageBox.Show(test1.Substring(2, len));

Was ist hier los und warum funktioniert das nicht ?

mfg yooti

D
496 Beiträge seit 2005
vor 15 Jahren

parameter 1 startposition (von welcher position an soll der string genommen werden)
parameter 2 länge (die anzahl der abzuschneidenen zeichen)

jetzt kommst du

"Programming is similar to sex. If you make a mistake, you have to support it for the rest of your life."

1.433 Beiträge seit 2006
vor 15 Jahren

            string testString = "myCSharp.de";
            int lengthToCut = 1;

            // Subtraction of the lenght to the current string
            Console.WriteLine("{0}", testString.Substring(0, testString.Length - lengthToCut));

            Console.ReadKey();

Grüsse
Daniel
Space Profile
Wer nicht fragt, der nicht gewinnt

49.485 Beiträge seit 2005
vor 15 Jahren

Hallo yooti,

sobald ich aber die zahl 1 erhöhe z.B. auf 2 geht irgendwas schief

so bitte nicht. Siehe [Hinweis] Wie poste ich richtig? Punkt 5.

Auch der von dir gewählte Titel "Substring" ist zu unspezifisch. Siehe [Hinweis] Wie poste ich richtig? Punkt 3. "ArgumentOutOfRangeException bei Substring (2, len)" wäre ein passender Titel gewesen.

Außerdem sagt ja die Meldung, die du bekommst (ArgumentOutOfRangeException: Der Index und die Länge müssen sich auf eine Position in der Zeichenfolge beziehen), aus, was das Problem ist. Du willst mehr Zeichen haben, als im String noch enthalten sind, weil 2 + len größer ist als die verbleibenden Zeichen.

Wenn du den ganzen Rest des Strings haben willst, dann verwende Substring (2) ohne Längenangabe.

herbivore