Ebben a rövid programkódban mi lehet a hiba?
string szoveg = "alma";
int index = 0;
szoveg[index] = "";
Console.WriteLine(szoveg);
Console.ReadLine();
Az alma szónak szeretném kitörölni az első elemét, oly módon, hogy üres stringet adok meg az 'a' betű helyére.
Van erre más helyes/egyszerűbb megoldás, feltéve azt, hogy nem tudom milyen hosszú az alma szó?Azt sem szeretném, hogy az 'l' betű az első helyre átcsússzon.
A c# az immutable objektumokkal dolgozik, azaz amit megadtál stringet (alma), az a megadás pillanatától kezdve read-only.
Megoldás lehet egy Stringbuilder objektum létrehozása, de amúgy egyetlen karakter helyére nem lehet egy sztringet írni. Esetleg integer 0 értéket ha adsz neki (ennek módja karakter esetén: '\0' ).
Tehát a megoldás:
(using System.Text kell neki)
string s = "alma";
int index = 0;
StringBuilder szoveg = new StringBuilder(s);
szoveg[index] = '\0';
Innen már menni fog
#1: ha beteszed egy .net fordítóban, akkor is kiírja, hogy read-only, nem fog az sem segíteni ha space KARAKTERT (és nem sztringet) ad meg.
Az én (#2) megoldásom kipróbáltam, működik. De amúgy ilyeneket nem csinálunk semmilyen nyelvben, hogy a bájtokat otthagyjuk, több okból sem jó.
"Azt nem figyeltem, hogy C#."
Ahogy semmilyen kérdésben sem figyelsz, csak oda böfögsz mindig valamit, aztán folytatod a hülyeséged.
Kussolj már be kisember, nem vok rád kiváncsi.
Inkább tanulj, okosodj, képezd magad, mert nagyon erősen rád fér.
Egy másik megközelítésben:
var s = "alma";
var s2 = " " + s.Substring(1);
Kapcsolódó kérdések:
Minden jog fenntartva © 2025, www.gyakorikerdesek.hu
GYIK | Szabályzat | Jogi nyilatkozat | Adatvédelem | Cookie beállítások | WebMinute Kft. | Facebook | Kapcsolat: info(kukac)gyakorikerdesek.hu
Ha kifogással szeretne élni valamely tartalommal kapcsolatban, kérjük jelezze e-mailes elérhetőségünkön!