

C# - jak najít poslední lomítko? IndexOf?
V C# potřebuji ve stringu najít poslední / v URL a vše do toho místa smazat. Zkoušel jsem to přes Remove, Trim, IndexOf ale nikde to neumím dotáhnout dokonce. No a když jsem zkusil Céčkovou logiku: while tak dlouho jdi od konce dokud nenarazíš na / . tu pozici i pak použít v jmeno_stringu.Remove(0, i);
tak mi to padalo na řádku list_stringu[radek].ToString(); ... sem nějak zmatenej ...
diky chlapi, ale fakt mam v tom hokej:
zkompiluju následující kód:
string name = fronta[currentDownload].ToString(); //zde to pada :(
//zde mam ten substring co mi radite
a při debuggingu vyleze tabulka:
tlačítka Break, Continue, Ignore (nelze zvolit)
A sdelis nam co je fronta a currentDownload nebo si to budem muset vycucat z prstu?
Daj si na ten riadok breakpoint (F9) a pozri sa, že či je fronta, currentDownload alebo fronta[currentDownload] rovné null. Potom zisti prečo a oprav to.
K pôvodnej otázke: Metóda LastIndexOf môže vrátiť -1 v prípade, že sa hľadaný text v reťazci nenachádza - je dobré na to myslieť. V tvojom prípade stačí metóde Substring poslať len prvý argument.
Neviem, aké používaš vývojové prostredie, ale Visual Studio ti pri chybe ukáže veľmi presne, v čom je problém. Odporúčam vyvíjať so zapnutým odchytávaním všetkých CLR výnimiek (Ctrl + Alt + E, zaškrtnúť Thrown pre CLR Exceptions).
já jsem chujo, trasuju to, ale nedocvaklo mi že když je to null... díky
bylo to tím, že na začátku třídy Form jsem měl List stringů a pak dál v metodě deklaroval a plnil list stringů- stačilo odstranit jen zdvojenou deklaraci

fronta je List stringů
currentDownload je typu int a počítá inkrementálně kolikátý soubor se stahuje v pořadí
Ak je to List<string>, tak volanie metódy ToString je zbytočné. Takže môžeš nahradiť fronta[currentDownload].ToString() za fronta[currentDownload].
Za tým by bolo dobré skontrolovať, či to nie je null.