Entwickler-Ecke

Basistechnologien - char[] in einen String umwandeln


ani - Fr 14.10.05 10:59
Titel: char[] in einen String umwandeln
huhu!
ich spiel hier grad ein bißchen rum....

ich möchte ein char[] in die textBox schreiben, gibts da keine methode die das machen kann? toString() funktioniert hier nicht.
muss ich dass dann so lösen oder gehts auch anders?


C#-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
char[] satz = new char[5];
satz[0] = 'h';
satz[1] = 'a';
satz[2] = 'l';
satz[3] = 'l';
satz[4] = 'o';

foreach(char zeichen in satz)
{
 textBox1.Text = textBox1.Text+zeichen;
}


wenn sich einer fragt warum ich hallo nicht gleich in einem string speichere.
desshalb--> ich durchsuche die einzelnen zeichen nach übereinkunpft mit einem int-wert, wenn treffer dann soll er an die stelle ein anderes zeichen schreiben.


raziel - Fr 14.10.05 11:24

Hallo,

du kannst das über den string-Konstruktor lösen:

C#-Quelltext
1:
  string strSatz = new String( satz );                    



Gruß,
raziel


ani - Fr 14.10.05 11:36

aaaaa,


wusst ichs doch dass es da was einfacheres gibt.

danke dir :)


Robert_G - Fr 14.10.05 11:37
Titel: Re: char[] in einen String umwandeln
user profile iconani hat folgendes geschrieben:

muss ich dass dann so lösen oder gehts auch anders?


Moin ani,
klar gates anders. :P

Erstmal einen StringBuilder mit der gewünschten Größe anlegen[meta]Spart Kopiererei beim Vergrößern[/meta]: StringBuilder sb = new StringBuilder(satz.Length);
Nun den char[] reinwerfen: sb.Append(satz);
Oder die einzelnen Chars einzeln besetzen[meta]Der Indexer vom StrinBuilder macht deinen char array von Anfang an unnötig[/meta]:

C#-Quelltext
1:
2:
3:
4:
for(int i = 0; i < satz.Length; i++)
{  
  sb[i] = satz[i];
}


Das hier gehört zu den "bösen" Dingen in .Net, die man möglichst nie-nich machen sollte: :shock:
Zitat:

C#-Quelltext
1:
2:
3:
4:
foreach(char zeichen in satz)
{
 textBox1.Text = textBox1.Text+zeichen;
}
Mit jedem + gibt es einen neuen String, dieser muss in der globalen Listen gefunden werden[meta]wenn nicht gefunden -> in die Liste, wenn gefunden -> die Instanz der Liste zurück[/meta].
Wer sowas macht glaubt auch an den Mythos ".Net ist langsam". ;)


ani - Fr 14.10.05 11:44

ich find das erste eleganter :P
aber trotzdem danke ;)


ps: ich wills auch nicht so machen :)