

C# - metoda TRIM na soubor TXT v poli
Dobrý den!
Nejsem nijak zdatný programátor - začínám - a mám problém. Do txt souboru jsem si stahnul z internetu seznam ->
ananas
angrešt
avokádo
banán
borůvka
broskev
citron
datle
fík
atd.
Za většinou z tech slov jsou mezery.
Teď mám kód ->
string[] ovoce = File.ReadAllLines (@"C:\Users\ ... \ovoce.txt");
string zadani = Console.ReadLine();
if (ovoce.Contains(zadani))
Console.WriteLine("Je to ovoce.");
else
Console.WriteLine("není to ovoce");
Pokud si ted vyberu nejake to ovoce ze seznamu a vypišu do konzole - vrátí mi to "není to ovoce".
Problém je samozřejme v tech mezerach za jednotlivými slovy v tom TXT souboru. (pokud je vymažu a v konzoli je napíšu - funguje to tak, jak má)
Pokud by ten soubor mel více prvků - stravil bych hodne času nad vymazaváním tech mezer - napadlo mě tedy využít na to pole metodu TRIM.
string[] ovoce = File.ReadAllLines (@"C:\Users\ ... \ovoce.txt").Trim();
zkousel jsem i
foreach (string j in ovoce)
ovoce[j] = j.Trim();
Opravdu nevím jestli to vůbec dává smysl - každopádně to nefunguje a netuším proč.
Díky za každou radu!
P.S. - hačky a čarky jsem zatím neřešil - zkoušel jsem do konzole vypisovat jen slova bez diakritiky ...
Nedává to smysl, vždyť to ani nemůže jít zkompilovat.
Prvním pokusem voláš Trim na pole, pole (ať už čehokoliv) nemá metodu Trim.
Ten druhej pokus je taky blbost, j je string, jeden z těch v poli, čili jeden načtený řádek.
Tím se pokoušíš indexovat v tom poli, které ho obsahuje. Pole není asociativní -> indexovat můžeš jen pozicí prvku. Ono taky indexovat prvkem, který chceš z toho pole dostat by bylo dost k ničemu, když už ho stejně máš, žejo . Když už to chceš udělat takhle, musíš použít smyčku for
a pokud jde o nejjednodušší řešení, použij LINQ. K tomu už jenom dodám, že té konstrukci s šipkou "=>" se říká lambda výraz.
Jak říkám - sám tomu zcela nerozumím - učím se.
Smozřejmě kód funguje. :)
Děkuji mockrát!
Samozrejme je dobre to mit vyresene v programu, ale pokud by se to pouzivalo casto a na velky seznam, tak je dobre mit navic uz i ten seznam bez mezer. Samozrejme to clovek nebude vymazavat rucne po jedne mezere (coz je navic nachylne na chyby i u relativne malych souboru s par sty polozkami), ale smaze to nejakym skriptem, napriklad:
sed -i "s/^ *//;s/ *$//" ovoce.txt
nebo pouzije nejaky rozumny editor (ja si oblibil vim), ktery umi ty mezery nahradit systematicky sam, jednim prikazem.