Avatar
niderle.l
Člen
Avatar
niderle.l:

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. března 20:37
Avatar
niderle.l
Člen
Avatar
niderle.l:

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. března 20:38
Avatar
Odpovídá na niderle.l
sadlomaslox25:

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. března 20:42
Avatar
niderle.l
Člen
Avatar
Odpovídá na sadlomaslox25
niderle.l:

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. března 20:58
Avatar
Ľuboš Čurgó
Redaktor
Avatar
Ľuboš Čurgó:

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. března 23:41
Akceptované řešení
+20 Zkušeností
+1 bodů
Řešení problému
 
Nahoru Odpovědět 29. března 23:40
Avatar
niderle.l
Člen
Avatar
Odpovídá na Ľuboš Čurgó
niderle.l:

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. března 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.