dodání ihned! nové
Hledáme programátora do rostoucího týmu ITnetwork.cz, 100% home office, 100% flexibilní pracovní doba. Více informací
Black Friday je tu! Využij jedinečnou příležitost a získej až 80 % znalostí navíc zdarma! Více zde
BF
Avatar
Ladislav Niderle:29.3.2016 20:37

Ahoj, potřeboval bych poradit jak správně naplnit a následně přečíst data ze slovníku.
Zde je to jak ho mám vytvořený:

Dictionary<string,List<PagesSettings>> ListPages;

Dále mám uděláno jeho new :

ListPages = new Dictionary<string, List<PagesSettings>>();

Tento řádek mám v konstruktoru

Třída PagesSettings vypadá následovně:

public class PagesSettings
    {
        public string Name;
        public string Drive;
        public string Extensions;
        public int LevelSeachr;

        public PagesSettings(string _name, string _drive, string _extensions, int _levelseachr)
        {
            Name = _name;
            Drive = _drive;
            Extensions = _extensions;
            LevelSeachr = _levelseachr;

Můj problém je v TOm, že nevím jak tam mám vložit správně data, která se zadávají přes formulář. Ještě dodám, že je to ve WFA a že ten KEY ve slovníku je GUID.
Mohl by mi někdo poradit jak ty data tam správně dát a následně jak je možné je i z toho vytáhnout?

Moc děkuji

 
Odpovědět
29.3.2016 20:37
Avatar
Ladislav Niderle:29.3.2016 20:38

U třídy PagesSettings mi chybí na konci dvě složené závorky k ukončení, tak se prosím moc nedivte, jen jsem je omylem nevzal do kopírování.

 
Nahoru Odpovědět
29.3.2016 20:38
Avatar
Odpovídá na Ladislav Niderle
sadlomaslox25:29.3.2016 20:42

tak kdyz je key GUI tak proc ho mas deklarovany jako string ?

ListPages["klic1"] = new PagesSettings(­....);

Console.Write­Line(ListPages["klic1"]­.Name);

PagesSettings vysledek;
if(ListPages.Try­GetValue("klic1", out vysledek)
Console.Write­Line(vysledek­.Name);

 
Nahoru Odpovědět
29.3.2016 20:42
Tento výukový obsah pomáhají rozvíjet následující firmy, které dost možná hledají právě tebe!
Avatar
Odpovídá na sadlomaslox25
Ladislav Niderle:29.3.2016 20:58

Nebyl jelikož jsem to ani nezkusil jestli jde být, ale jde jak jsem pochopil, takže jsem to opravil, ale stále mi to nyní hlásí, že List<PagesSettings> neobsahuje konstruktor, který přebírá tento počet parametrů:4.
Ale já vidím, že tam mám vytvořený konstruktor právě na 4 vstupní parametry, ale on to nevidí.

Je možné, že problém vznikl u toho, že ve Form1 jsem si nadeklaroval ten slovník a pak jsem si ho předal do dalšího formuláře?
V tom druhým formuláři, kde se má právě provádět zápis to vypadá následovně:

public Dictionary<Guid,List<PagesSettings>> ListPages;

A následně jak mám přidávat, tak tam mám následující řádek:

ListPages[guid]=new List<PagesSettings>("první", "druhý", "třetí", 5);

Taková data se tam ukládají, ale nějak nejsem schopen pochopit proč mi to hlásí chybu.

 
Nahoru Odpovědět
29.3.2016 20:58
Avatar
Ľuboš Čurgó
Redaktor
Avatar
Ľuboš Čurgó:29.3.2016 23:40

nechapem kde je problem. Btw ten guid by mal byt typu Guid

Dictionary<string, List<PagesSettings>> ListPages = new Dictionary<string, List<PagesSettings>>();
var guid = Guid.NewGuid().ToString();

var dataFromForm = new List<PagesSettings>() { new PagesSettings("Name", "Drive", "extension", 1) };
ListPages.Add(guid, dataFromForm);

var retrievedVaule = ListPages[guid];
Editováno 29.3.2016 23:41
Akceptované řešení
+20 Zkušeností
+1 bodů
Řešení problému
 
Nahoru Odpovědět
29.3.2016 23:40
Avatar
Odpovídá na Ľuboš Čurgó
Ladislav Niderle:30.3.2016 7:23

Problém byl ve mně, že jsem nechápal jak s tím pracovat a v natvrdlosti taky.

Děkuji za pomoc s tímto.

A chtěl jsem se zeptat zda se dá pomocí LINQ nebo jiného nástroje jednoduše udělat to, aby mi ten slovník nejdříve uložil jako XML soubor a pak i načíst tento soubor do daného slovníku? Je to možné, nebo to musím procházet nějakým složitějším způsobem.

Děkuji

 
Nahoru Odpovědět
30.3.2016 7:23
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 6 zpráv z 6.