Diskuze: List stringu do charu
V předchozím kvízu, Test znalostí C# .NET online, jsme si ověřili nabyté zkušenosti z kurzu.

Člen

Zobrazeno 13 zpráv z 13.
//= Settings::TRACKING_CODE_B ?> //= Settings::TRACKING_CODE ?>
V předchozím kvízu, Test znalostí C# .NET online, jsme si ověřili nabyté zkušenosti z kurzu.
Ten kód je trochu podivný, bylo by lepší říct co chceš, aby to dělalo a proč. Vypsat první písmena můžeš i nějak takhle:
List<string> testStringList = new List<string>();
testStringList.Add("Ahoj");
testStringList.Add("Cau");
testStringList.Add("Zidle");
testStringList.Add("Kocka");
Console.WriteLine(testStringList[0][0]);
Console.WriteLine(testStringList[1][0]);
Console.WriteLine(testStringList[2][0]);
Console.WriteLine(testStringList[3][0]);
Mám kolekci List ve stringu. v ní mám hodnoty. V našem případě:
ahoj,cau atd. Potřebuji abych si pokaždé vzal první znak z hodnoty. Ten znak
si uložím a porovnám si ho s druhou proměnnou typu string, kde si také
vezmu první znak.
Bohužel jsem se zasekl na tom, že mi z
listu<string> nechce ukládat první písmeno do pole char[] .
Ano, to jsi popsal ten kód. Ale proč to děláš? Jak jsem ti napsal výše, ta pole pro tuto úlohu vůbec nepotřebuješ.
Píšu jednu aplikaci na komunikaci s databází a hodnoty z databáze se mi ukládají do listu. Bylo by asi zdlouhavé vypisovat celý kód a proto jsem napsal část kódu, kde mám problém.
Koukám, že rozumný důvod z tebe nedostanu. Zkusil jsem to. Tvůj kód uprav nějak takhle:
char[] testChar = new char[testStringList.Count];
testChar[0] = testStringList[0].ToCharArray()[0];
testChar[1] = testStringList[1].ToCharArray()[0];
testChar[2] = testStringList[2].ToCharArray()[0];
testChar[3] = testStringList[3].ToCharArray()[0];
Ideálně si výsledek ToCharArray()
lokálně uložit, abys to
nepřeváděl tak hloupě pořád dokola.
Pokud vím, tak List<string> neobsahuje nic jako "ToCharArray()"
Teda pokud používáte jen .Net framework a nenapíšete si rozšiřující metodu
Máš pravdu, chyběl mi tam indexer. Jdu si to raději zkusit založit, původní příspěvek jsem upravil, případně upravím. Jak to funguje neřeším, dělám to jak to on chtěl.
Už je to ok.
Odpověď na požadavek:
List<string> testStringList = new List<string>();
testStringList.Add("Ahoj");
testStringList.Add("Cau");
testStringList.Add("Zidle");
testStringList.Add("Kocka");
//Chci aby mi to vypsalo:
//A
//C
//Z
//K
foreach(var str in testStringList)
{
if (!string.IsNullOrEmpty(str)) Console.WriteLine(str[0]);
}
Console.ReadKey();
Řešení s polem (zbytečným):
List<string> testStringList = new List<string>();
testStringList.Add("Ahoj");
testStringList.Add("Cau");
testStringList.Add("Zidle");
testStringList.Add("Kocka");
char[] testChar = new char[testStringList.Count];
for (int i = 0; i < testStringList.Count; i++)
{
if (!string.IsNullOrEmpty(testStringList[0]))
{
testChar[i] = testStringList[i][0];
}
Console.WriteLine(testChar[i]);
}
Console.ReadKey();
Zobrazeno 13 zpráv z 13.