Invertering af string. Nemt spørgsmål

Tags:    c#

Hejsa, jeg er forholdsvis ny, men har programmeret meget i andre sprog, så jeg skal bare have lært det her. Jeg vil invertere en streng, og har så dette:

private void button1_Click(object sender, EventArgs e)
{
string MyString = textBox1.Text;
char[] Tmp = new char[MyString.Length];

for (int i = 0; i < MyString.Length; i++)
{
Tmp[MyString.Length - i] = MyString;
}

string ReversedString = new string(Tmp);
textBox1.Text = ReversedString;
}

Jeg får så fejlen: "IndexOutOfRangeException was unhandled".





1 svar postet i denne tråd vises herunder
1 indlæg har modtaget i alt 1 karma
Sorter efter stemmer Sorter efter dato
Fejlen opstår når man tilgår et array med en værdi der ligger uden for størrelsen af arrayet.

Hvis man fx har et array:
int[] foo = new int[3];

Så vil der kunne være 3 elementer i arrayet, placeret ved 0, 1 og 2.

Hvis man prøver at tilgå arrayet med:
foo[3]
Så vil fejlen opstå.

-
Jeg tror at du har glemt/overset at når man opretter et array med X antal elementer. Så vil det sidste element være placeret ved X-1.

Følgende vil vist løse det:
Fold kodeboks ind/udKode 


Men det ville nok være pænere at gøre følgende:
Fold kodeboks ind/udKode 


Jeg har ikke lige testet det, men håber det virker ;)

PS. Husk at bruge kode-boksene når du skriver kode i indlæggende ellers kan [ i ] nemt bare forsvinde og i stedet gøre teksten kursiv



Indlæg senest redigeret d. 23.07.2006 01:15 af Bruger #3491
t