poniedziałek, 21 kwietnia 2008

[c#] Operator string'a + (konkatenacja) a StringBuilder

Dobrym sposobem na przyspieszenie budowania string'ow jest uzycie do tego StringBuilder'a. Jest on o wiele szybszy od operatora +. Roznice czasowa najlepiej widac w jakiejs petli, wiec jesli budujemy jakiegos bardzo duzego string'a oraz jego dlugosc moze byc dynamiczna, to polecam uzywanie StringBuilder'a.
Dlaczego tak sie dzieje? Poniewaz StringBuilder w czasie tworzenia przydziela w pamieci obszar roborczy, do ktorego jest wpisany nasz string, po czym StringBuilder dokonuje bezposrednio operacji wlasnie na tym obszarze.

Zamiast:
string s = "ala" + " ma " + "kota";
Console.WriteLine(s);

Mozemy:

StringBuilder sb = new StringBuilder();
sb.Append("ala");
sb.Append(" ma ");
sb.Append("kota");
Console.WriteLine(sb); // sb.ToString(), by wypisac cala jego zawartosc




Wg mnie jedna z najlepszych ksiazek do c# i .net'a

Brak komentarzy: