Diskuze: volání array na string

C# .NET .NET (C# a Visual Basic) volání array na string American English version English version

Avatar
exicap
Člen
Avatar
exicap:

Ahoj, rád bych určil pozici každého znaku v uživatelem zadané větě. Nicméně nechce mi to jet.

string zprava = Console.ReadLine();
string abecedniznaky = "abcdefghijklmnopqrstuvwxyz";

foreach (char c in zprava)
    int pozice = Array.IndexOf(abecedniznaky, c);

Vypisuje mi to error, že příkazem Array nelze volat na string. Přitom string je vlastně také pole, není?

Proč se tedy string chová jako pole a zde bych musel přímo definovat proměnnou abecedniznaky jako pole a tím pádem složitě do ní nahrávat všechna písmena abecedy?

Děkuji.

Editováno 17.1.2015 11:17
 
Odpovědět 17.1.2015 11:14
Avatar
Odpovídá na exicap
Ondřej Štorc:

Zkus použít místo:

string zprava = Console.ReadLine();
string abecedniznaky = "abcdefghijklmnopqrstuvwxyz";

foreach (char c in zprava)
    int pozice = Array.IndexOf(abecedniznaky, c);

toto:

string zprava = Console.ReadLine();
string abecedniznaky = "abcdefghijklmnopqrstuvwxyz";

foreach (char c in zprava)
    int pozice = abecedniznaky.IndexOf(c);
Akceptované řešení
+20 Zkušeností
+1 bodů
Řešení problému
Nahoru Odpovědět 17.1.2015 11:38
Život je příliš krátký na to, abychom bezpečně odebírali USB z počítače..
Avatar
Jan Vargovský
Redaktor
Avatar
Odpovídá na exicap
Jan Vargovský:

String je sice interně pole, ale externě je to normální datový typ. Abys nedostával vyjímku, tak musíš zavolat na tom stringu metodu ToCharArray.

 
Nahoru Odpovědět 17.1.2015 13:42
Děláme co je v našich silách, aby byly zdejší diskuze co nejkvalitnější. Proto do nich také mohou přispívat pouze registrovaní členové. Pro zapojení do diskuze se přihlas. Pokud ještě nemáš účet, zaregistruj se, je to zdarma.

Zobrazeno 3 zpráv z 3.