Diskuze: c# dictionary
V předchozím kvízu, Test znalostí C# .NET online, jsme si ověřili nabyté zkušenosti z kurzu.
Člen
Zobrazeno 10 zpráv z 10.
//= 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.
Ahoj,
pomohl by Ti následující příklad?
public void VypisSlovnik()
{
Dictionary<string, List<string>> slovnik = new Dictionary<string, List<string>>();
slovnik.Add("prvni", new List<string>(new string[] {"a", "b", "c"}));
slovnik.Add("druhy", new List<string>(new string[] {"d", "e", "f"}));
slovnik.Add("treti", new List<string>(new string[] {"g", "h", "i"}));
string klic = "prvni";
foreach(var item in slovnik["prvni"])
{
Console.WriteLine(item);
}
Console.ReadKey();
}
Ahoj, jo takto mi to stačí, aspoň jsem si ověřil, že jsem to měl taky dobře udělané, ale takže mám bohužel problém s tím co jsem myslel že je v pohodě a tudíž načtení následujícího XML souboru:
<?xml version="1.0" encoding="utf-8"?>
<Settings>
<GroupeExtensions>
<NameGroupe>test 01</NameGroupe>
<Extensions>
<Ext>*.avi</Ext>
</Extensions>
<Extensions>
<Ext>*.mkv</Ext>
</Extensions>
<Extensions>
<Ext>*.mpeg</Ext>
</Extensions>
</GroupeExtensions>
<GroupeExtensions>
<NameGroupe>test 02</NameGroupe>
<Extensions>
<Ext>*.avi</Ext>
</Extensions>
<Extensions>
<Ext>*.mkv</Ext>
</Extensions>
<Extensions>
<Ext>*.mpeg</Ext>
</Extensions>
</GroupeExtensions>
</Settings>
GroupeExtensions = jednotlivé skupiny
NameGroupe = jméno skupiny (key ve slovníku)
Ext = přípony (prostě hodnoty)
A toto potřebuji načíst do slovníku, který jsem popsal výše.
Nevěděl by jsi ty nebo někdo jiný teda pomoci, jak to mám správně načíst? Snažím se používat k tomu LINQ.
Děkuji
Jen taková poznámka, nemělo by tam místo "groupe" být "group"?
Ano je to velice pravděpodobné, děkuji za upozornění.
A jak tedy soubor načítáš?
Možností je určitě několik, příklad může být tento:
XDocument soubor =XDocument.Load("TvujSoubor.xml");
IEnumerable<XElement> elementy = soubor.Element("Settings").Elements("GroupeExtensions");
foreach(XElement el in elementy)
{
string klic = el.Element("NameGroupe").Value;
IEnumerable<XElement> extensions = el.Elements("Extensions");
List<string> hodnoty = new List<string>();
foreach(XElement ext in extensions)
{
hodnoty.Add(ext.Element("Ext").Value);
}
slovnik.Add(klic, hodnoty);
}
Určitě je více postupů, jak z Xml dostat data.
Dej vědět zda se Ti to podařilo.
P.S.: třída XDocument je součástí namespace System.Xml.Linq
Dobrý den
Mám menší problém a nevím si s ním rady pomůžete mi prosím? Zadání
je: "Vytvořte aplikaci na testování znalosti anglických slov. Aplikace
vypíše náhodně české slovo ze slovníku a ohodnotí zapsané anglické." a
vůbec nechápu co dělat. Náš učitel nám to nevysvětlil..
Ahoj, na toto by asi mělo vzniknout samostatné vlákno, ale jinak jde o to, zda je to vše co se zadání týče nebo jsou ještě nějaká specifikace a má to být WinForm nebo konzolová aplikace. Jelikož je možnost si vytvořit slovník, kde klíč bude české slovíčko a hodnota správná anglická. Takto se dá slovník naplnit a následně pokud by se jednalo o WinForm, tak na tlačítko by se provedl random nad slovníkem, které by se vepsalo do labelu a pod ním by byl textbox, kde uživatel zapíše podle něj správně slovíčko a pak jen akci na tlačítko nebo enter, které by to porovnalo. To je asi nejjednodušší verze co by se dala udělat, Co se týče konzolové aplikace, tak tam by musel být nějaký cyklus while, který by fungoval do doby než by se třeba splila podmínka na písmeno "Q" nebo jiné předem definované a znázorněné uživateli. Jako další možnost je spíše následně nemít slovíčka přímo v programu, ale využít k tomu třeba XML soubor, který by se dal číst a následně pracovat. Proto je otázkou jak moc by to mělo být sofistikované. Doufám, že jsem aspoň trošku poradil, aspoň jak bych to dělal já. Kdyby něco, tak klidně napiš a snad by se dalo něco udělat, pokud to samozřejmě nepotřebuješ už na zítřek .
Ahoj, předpokládám, že generování randomu máš vyřešené a jde ti jen o porovnání a výstup. Nevím, kolik slovíček má zadání obsahovat, ale pokud jde jen o cíl a slovíček nebude příliš, tak bych si vytvořil pole, kde klíči budou česká slovíčka a hodnota bude anglické slovíčko. Při výpisu bych zobrazil pouze klíč a textbox. Po validaci tlačítkem bych porovnal hodnotu textboxu a hodnotu indexu pole. Pak záleží, jaký chceš výstup, jestli pouze true/false nebo třeba procentuální shodu znaků. Pokud procenta, tak by bylo lepší použít databázi, neboť SQL dotazy udělají spoustu práce za tebe. Dej vědět přesná specifika zadání (technologie, obsah slovníku, rozšiřitelnost atd.) a snad ti můj názor bude k něčemu.
Zobrazeno 10 zpráv z 10.