NOVINKA: Získej 40 hodin praktických dovedností s AI – ZDARMA ke každému akreditovanému kurzu!
Hledáme nové posily do ITnetwork týmu. Podívej se na volné pozice a přidej se do nejagilnější firmy na trhu - Více informací.

Diskuze – Lekce 4 - Vícerozměrná pole v C# .NET

Zpět

Upozorňujeme, že diskuze pod našimi online kurzy jsou nemoderované a primárně slouží k získávání zpětné vazby pro budoucí vylepšení kurzů. Pro studenty našich rekvalifikačních kurzů nabízíme možnost přímého kontaktu s lektory a studijním referentem pro osobní konzultace a podporu v rámci jejich studia. Toto je exkluzivní služba, která zajišťuje kvalitní a cílenou pomoc v případě jakýchkoli dotazů nebo projektů.

Komentáře
Avatar
gcx11
Tvůrce
Avatar
Odpovídá na ZdenekS
gcx11:13.10.2017 17:22

Ahoj, myslím že:

List<int> MujList = new List<int>() { 1, 1, 1 };
 
Odpovědět
13.10.2017 17:22
Avatar
ZdenekS
Člen
Avatar
ZdenekS:13.10.2017 20:37

Toto jsem neměl na mysli, v tvém případě kompilátor převede hodnoty na metodu Add. viz přiložený obrázek . Co bych rád věděl jak deklarovat pomocí "List" a následně přidat hodnoty, vytvořit toto pole o třech elementech a např. přidat čtyři řady , - (1,2,3),(4,5,­6),(7,8,9),(7,5,3). Ale nepoužít for ani foreach , použít Add, anebo něco v tomto smyslu

e1 e2 e3
1 2 3
4 5 6
7 8 9
7 5 3

děkuju

 
Odpovědět
13.10.2017 20:37
Avatar
ZdenekS
Člen
Avatar
ZdenekS:13.10.2017 20:45

asi nějak takto, ale nemohu to ani vyguglit

List<int>[] MujList = new List<int>()[];

 
Odpovědět
13.10.2017 20:45
Avatar
gcx11
Tvůrce
Avatar
Odpovídá na ZdenekS
gcx11:13.10.2017 22:57

V tom případě myslíš toto:

List<int[]> list = new List<int[]>();

A poté:

list.Add(new int[3]{1, 1, 1});

Ale pokud víš, že tam budeš dávat pouze trojice, tak bych doporučil použít Tuple:

List<Tuple<int, int, int>> triples = new List<Tuple<int, int, int>>();

přidávání:

triples.Add(new Tuple<int,int,int>(1, 1, 1));
 
Odpovědět
13.10.2017 22:57
Avatar
ZdenekS
Člen
Avatar
Odpovídá na gcx11
ZdenekS:14.10.2017 18:02

Skvělý , děkuji moc, to jsem hledal

 
Odpovědět
14.10.2017 18:02
Avatar
Petr Zajac
Člen
Avatar
Petr Zajac:28.2.2018 17:48

Tak zatím jsem se s 1D polem dokázak poprat, u 2D pole se mi teď po přečtení pletou řádky a sloupečky, od 3D pole dál už jsem ztracený.
Vysvětlí mi někdo zkušený opravdu "PRAKTICKÉ" využití pole? Pokud zvládnu OOP a WPF není jednodušší se na pole "vykašlat" a dávat si to co zadal uživatel buď rovnou do souboru, nebo pokročit ještě dál a zkrotit "zaklady databází" a ukládat to rozumně tam??? :-O

 
Odpovědět
28.2.2018 17:48
Avatar
huty
Člen
Avatar
Odpovídá na Petr Zajac
huty:28.2.2018 22:50

Pokud chceš reálná data aplikací nějak uchovávat, na pole se vykašli. S polem uchováš data pouze v ram, čili po vypnutí programu o data přijdeš. Pole můžeš použít například pokud programuješ hru, tak si aktuální část mapy načteš do paměti, do pole. Je to jasnější? :-)

Odpovědět
28.2.2018 22:50
obecně je lepší používat více proměnných a dodržovat přehlednost, než psát co nejkratší kód a po měsíci zapomenout, j...
Avatar
pocitac770
Tvůrce
Avatar
Odpovídá na Petr Zajac
pocitac770:28.2.2018 22:51

Pole je práce s daty za běhu počítače, pokud počítači aspoň trochu rozumíš, tak víš, že čtení/zápis do RAM paměti je rychlejší, než z/na pevný disk. Praktické využití pole? Cokoliv, kde máš větší počet "něčeho", nějakých dat (myšleno více jak 1) stejného druhu, který chceš mít nějak srovnaný, přehledně uložený za chodu programu, příklady najdeš úplně všude, a naopak nevím, co by jsi při programování bez pole dělal... To, jestli není lepší místo pole používat soubor, či databázi je jako se ptát jestli v následujícím kódu

int i = int.Parse(Console.ReadLine());
Console.Writeline(i + 3);

Nebylo lepší ukládat i na servery Googlu, kde bude i dobře zálohované a chráněné proti hackerům.

 
Odpovědět
28.2.2018 22:51
Avatar
Petr Zajac
Člen
Avatar
Odpovídá na pocitac770
Petr Zajac:1.3.2018 10:44

Počítač jsem i programoval (databáze pod DOS, konkrétně FoxPro), kde netuším jestli se pole dali využívat. Tam jsem na každý údaj měl extra proměnou, kterou jsem po potvrzení formuláře uživatelem dával na disk, takže pole neznám a přijdou mi zatím "cizí".

 
Odpovědět
1.3.2018 10:44
Avatar
Dušan Kovářík:9.6.2018 0:10

Super článek - konečně mi vnesl pochopení do takových věcí, jako např. proč se někdy používá jeden indexer s více indexy a někdy zase více indexerů s jedním indexem. Chvíli jsem musel přemýšlet a také si hrát s kódem, než jsem si potvrdil vlastní hypotézu, že je vlastně jedno, kterou dimenzi si představuji jako řádky a kterou jako sloupce a podobně. Pokud si to budu představovat opačně a v cyklech použité metody GetLength pro odpovídající dimenze správně sladím s pořadím indexů v indexeru, tak vše bude fungovat stejně.

 
Odpovědět
9.6.2018 0:10
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 10 zpráv z 34.