Válí se ti projekty v šuplíku? Dostaň je mezi lidi a získej cool tričko a body na profi IT kurzy v soutěži ITnetwork summer 2017!
Přidej si svou IT školu do profilu a najdi spolužáky zde na síti :)

Diskuze: Ako vlozit listy do dictionary

C# .NET .NET (C# a Visual Basic) Ako vlozit listy do dictionary American English version English version

Aktivity (1)
Avatar
Ľuboš Čurgó
Redaktor
Avatar
Ľuboš Čurgó:12.4.2013 14:59

Ahojte, robim skolsky projekt a zasekol som sa. Potrebujem tie 2 listy ktore si nacitam z textaku hodit do jedneho dictionary a neviem ako.. Ukazka kodu

List<string> aj = new List<string>();
        List<string> sj = new List<string>();
        Dictionary<string, string> dic = new Dictionary<string, string>();

        public string GetDataFromAj()
        {
            string line = "";
            using (StreamReader sr = new StreamReader(@"aj.txt")) //nacita data z txt aj
            {
                while (sr.Peek() != -1)
                {
                    line = line + sr.ReadLine() + " ";
                }
            }
            return line;
        }

        public string GetDataFromSj()
        {
            string line = "";
            using (StreamReader sr = new StreamReader(@"sj.txt")) //nacita data z txt sj
            {
                while (sr.Peek() != -1)
                {
                    line = line + sr.ReadLine() + " ";
                }
            }
            return line;
        }


        public void SetToDic()
        {
            sj = GetDataFromSj().Split(new[] { " " }, StringSplitOptions.None).ToList();
            aj = GetDataFromAj().Split(new[] { " " }, StringSplitOptions.None).ToList();
            //SOME COOL STUFF?
       }
 
Odpovědět 12.4.2013 14:59
Avatar
David Čápka
Tým ITnetwork
Avatar
Odpovídá na Ľuboš Čurgó
David Čápka:12.4.2013 15:03

Jakmile chceš hodit listy do slovníku, tak je někde problém v návrhu aplikace. Do kolekcí se dávají objekty, nikoli další kolekce. Abychom ti mohli poradit, potřebujeme vědět, co má ten program dělat. Odhaduji podle názvů metod, že děláš slovníček. Očekával bych tedy někde třídu Slovíčko.

Editováno 12.4.2013 15:03
Nahoru Odpovědět 12.4.2013 15:03
Miluji svou práci a zdejší komunitu, baví mě se rozvíjet, děkuji každému členovi za to, že zde působí.
Avatar
Luboš Běhounek (Satik):12.4.2013 15:03

Jak je tam chces hodit? Nejak je pospojovat?
Pokud jsou stejne dlouhy a chces jen zaznamy na stejny pozici sparovat, tak treba takhle:

for (int i=0; i<aj.Count; i++)
  dic.Add(sj[i], aj[i]);
Nahoru Odpovědět  +1 12.4.2013 15:03
:)
Avatar
Ľuboš Čurgó
Redaktor
Avatar
Odpovídá na David Čápka
Ľuboš Čurgó:12.4.2013 15:11

mas pravdu je to slovnicek, no chcel som robit jednoduchy preklad slov z anj do sj a naopak. Chcel som si tie slova nacitavat z textoveho suboru a nie priamo ich vkladat v kode do dictionary

 
Nahoru Odpovědět 12.4.2013 15:11
Avatar
Ľuboš Čurgó
Redaktor
Avatar
Odpovídá na Luboš Běhounek (Satik)
Ľuboš Čurgó:12.4.2013 15:11

Ano, nieco take som potreboval :] Dakujem

 
Nahoru Odpovědět 12.4.2013 15:11
Avatar
David Čápka
Tým ITnetwork
Avatar
Odpovídá na Ľuboš Čurgó
David Čápka:12.4.2013 15:14

Mít ta slova ve 2 souborech je blbost, bude se to špatně spravovat. Tu aplikaci bys měl napsat znovu, je to úplně celé špatně. Slovíčka by měla být v souboru CSV a měla by se načítat do listu typu Slovicko. Slovicko je třída, obsahující vlastnosti Cesky, Anglicky, Spanelsky a tak dále. Kód, co jsi sem poslal, vůbec nedává smysl.

Nahoru Odpovědět 12.4.2013 15:14
Miluji svou práci a zdejší komunitu, baví mě se rozvíjet, děkuji každému členovi za to, že zde působí.
Avatar
Kit
Redaktor
Avatar
Odpovídá na David Čápka
Kit:12.4.2013 15:15

Do kolekcí se mohou dávat další kolekce. Občas to má i smysl.

Nahoru Odpovědět  +1 12.4.2013 15:15
Vlastnosti objektů by neměly být veřejné. A to ani prostřednictvím getterů/setterů.
Avatar
Michal Žůrek (misaz):12.4.2013 15:22
List<List<string>> neco = new List<List<string>>();

při troše štěstí to bude fungovat.

Nahoru Odpovědět 12.4.2013 15:22
Nesnáším {}, proto se jim vyhýbám.
Avatar
Kit
Redaktor
Avatar
Odpovídá na Michal Žůrek (misaz)
Kit:12.4.2013 15:38

Máš nějaký speciální důvod dělat slovník jako seznam?

Nahoru Odpovědět 12.4.2013 15:38
Vlastnosti objektů by neměly být veřejné. A to ani prostřednictvím getterů/setterů.
Avatar
Kit
Redaktor
Avatar
Odpovídá na Ľuboš Čurgó
Kit:12.4.2013 15:56

Je víc než vhodné, abys měl slovíčka z obou jazyků v jednom souboru hezky vedle sebe, oddělené např. čárkou, středníkem nebo rovnítkem. Pak nebudeš řešit takovou ptákovinu a prostě budeš brát řádek po řádku a ukládat ho do dic.

Nahoru Odpovědět  +2 12.4.2013 15:56
Vlastnosti objektů by neměly být veřejné. A to ani prostřednictvím getterů/setterů.
Avatar
David Čápka
Tým ITnetwork
Avatar
Odpovídá na Kit
David Čápka:12.4.2013 16:05

Udělám třídu i kdyby v ní měla být zas jen kolekce. Nikdy bych nedal kolekci do kolekce. Už jen proto, že vím, jak potom vypadá práce s takovou strukturou.

Nahoru Odpovědět 12.4.2013 16:05
Miluji svou práci a zdejší komunitu, baví mě se rozvíjet, děkuji každému členovi za to, že zde působí.
Avatar
Ľuboš Čurgó
Redaktor
Avatar
Ľuboš Čurgó:12.4.2013 16:23

Nie nemam, len som si chcel precvicit pracu zo zoznamami. Asi to je fakt cele na ..., idem si to teda prerobit :]

 
Nahoru Odpovědět 12.4.2013 16:23
Avatar
Petr Nymsa
Redaktor
Avatar
Odpovídá na David Čápka
Petr Nymsa:12.4.2013 16:25

Jeden zde nejmenovaný kolega jednou do hry udělal, pokud se nepletu byl to List v Listu a v Listu :D .

Nahoru Odpovědět 12.4.2013 16:25
Pokrok nezastavíš, neusni a jdi s ním vpřed
Avatar
Jiří Gracík
Redaktor
Avatar
Odpovídá na Petr Nymsa
Jiří Gracík:12.4.2013 16:31

Tak frajere, nedělej si srandu z nejmenovanýho kolegy, v tý době to mělo svůj význam :D a byl to List Listů Polí textur, tak se uklidni :D :D :D

Nahoru Odpovědět 12.4.2013 16:31
Creating websites is awesome till you see the result in another browser ...
Avatar
Petr Nymsa
Redaktor
Avatar
Odpovídá na Jiří Gracík
Petr Nymsa:12.4.2013 16:32

Jelikož nejmenovaný kolega neveděl že jde textura v Draw otočit :D, tak si udělal 60 textur pro jeden objekt otočený o několik stupňů ? :D

Nahoru Odpovědět 12.4.2013 16:32
Pokrok nezastavíš, neusni a jdi s ním vpřed
Avatar
Kit
Redaktor
Avatar
Odpovídá na Petr Nymsa
Kit:12.4.2013 16:33

Pětirozměrné seznamy, to je moje :)

Nahoru Odpovědět 12.4.2013 16:33
Vlastnosti objektů by neměly být veřejné. A to ani prostřednictvím getterů/setterů.
Avatar
Petr Nymsa
Redaktor
Avatar
Odpovídá na Kit
Petr Nymsa:12.4.2013 16:34

To se špatně udržuje ne ? o_O Nedokážu si představit iteraci a vytahování dat z takovýchto kolekcí .. :O

Nahoru Odpovědět 12.4.2013 16:34
Pokrok nezastavíš, neusni a jdi s ním vpřed
Avatar
Jiří Gracík
Redaktor
Avatar
Odpovídá na Petr Nymsa
Jiří Gracík:12.4.2013 16:39

Jmenovaný kolega vůbec neví o co tam šlo :D Nejmenovaný kolega samozřejmě věděl, že se dají textury otáčet, ale nevěděl jak :D a textur bylo pro jeden objekt jen 16 :D!

Nahoru Odpovědět 12.4.2013 16:39
Creating websites is awesome till you see the result in another browser ...
Avatar
Kit
Redaktor
Avatar
Odpovídá na Petr Nymsa
Kit:12.4.2013 17:00

Není to tak hrozné. Hlavně je důležité vědět, kdy si můžeš dovolit to použít a kdy ne. Iterace není žádný problém, ale jak už psal David Čápka, často je vhodnější je zapouzdřit do tříd. Tedy pokud to má smysl.

Když si však vezmeš obyčejný strom, tak je to také takový seznam, ve kterém je další seznam s dalším seznamem... V DOMu se dostaneš do 10. levelu, ani nevíš jak. Adresářová struktura je přece také seznam seznamů.

Nahoru Odpovědět  +2 12.4.2013 17:00
Vlastnosti objektů by neměly být veřejné. A to ani prostřednictvím getterů/setterů.
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 19 zpráv z 19.