Diskuze: Ako vlozit listy do dictionary

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

Avatar
Ľuboš Čurgó
Redaktor
Avatar
Ľuboš Čurgó:

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:

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):

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ó:

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ó:

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:

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:

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):
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:

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:

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:

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ó:

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:

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:

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:

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:

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:

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:

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:

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.