Zarábaj až 6 000 € mesačne! Akreditované rekvalifikačné kurzy od 0 €. Viac informácií.

Diskusia – 4. diel - Viacrozmerné polia v C# .NET

Späť

Upozorňujeme, že diskusie pod našimi online kurzami sú nemoderované a primárne slúžia na získavanie spätnej väzby pre budúce vylepšenie kurzov. Pre študentov našich rekvalifikačných kurzov ponúkame možnosť priameho kontaktu s lektormi a študijným referentom pre osobné konzultácie a podporu v rámci ich štúdia. Toto je exkluzívna služba, ktorá zaisťuje kvalitnú a cielenú pomoc v prípade akýchkoľvek otázok alebo projektov.

Komentáre
Avatar
gcx11
Tvůrce
Avatar
Odpovedá na ZdenekS
gcx11:13.10.2017 17:22

Ahoj, myslím že:

List<int> MujList = new List<int>() { 1, 1, 1 };
 
Odpovedať
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

 
Odpovedať
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>()[];

 
Odpovedať
13.10.2017 20:45
Avatar
gcx11
Tvůrce
Avatar
Odpovedá 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));
 
Odpovedať
13.10.2017 22:57
Avatar
ZdenekS
Člen
Avatar
Odpovedá na gcx11
ZdenekS:14.10.2017 18:02

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

 
Odpovedať
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

 
Odpovedať
28.2.2018 17:48
Avatar
huty
Člen
Avatar
Odpovedá 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ší? :-)

Odpovedať
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
Odpovedá 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.

 
Odpovedať
+3
28.2.2018 22:51
Avatar
Petr Zajac
Člen
Avatar
Odpovedá 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í".

 
Odpovedať
-1
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ě.

 
Odpovedať
9.6.2018 0:10
Robíme čo je v našich silách, aby bola tunajšia diskusia čo najkvalitnejšia. Preto do nej tiež môžu prispievať len registrovaní členovia. Pre zapojenie sa do diskusie sa zaloguj. Ak ešte nemáš účet, zaregistruj sa, je to zadarmo.

Zobrazené 10 správy z 34.