C# - 5.lekce
 x   TIP: Přetáhni ikonu na hlavní panel pro připnutí webu
Reklama

C# - 5.lekceC# - 5.lekce

 
Hledat
Moderní platforma pro vytvoření vašeho nového webu – Wix.com.
Nyní už můžete mít web zdarma.
Vybavení pro Laser Game
Spuštěn Filmový magazín
Laser Game Brno

C# - 5.lekce

Google       Google       31. 8. 2005       66 959×

Podíváte se na jednotlivé druhy polí a na to, jak je obsloužit. Rozdělíme je na tři základní typy a to na pole jednorozměrné, pole pravoúhlé a pole zubaté...

Reklama
Reklama

Jednoduché jednorozměrné pole

Při deklaraci nejprve určíme datový typ, kterého pole může nabývat, a zadruhé velikost prvního rozměru. Jednorozměrné pole má jen jeden rozměr, tedy jednu řadu prvků. Pole se deklarují za pomoci hranatých závorek, příklad:


int[] i = new int[100];

Tímto řádkem deklarujeme jednorozměrné pole se jménem i a velikostí 100 prvků. Je to prostor na 100 celočíselných hodnot (typ int), indexovaných od i[0] do i[99].

Ukázka prostého naplnění jednotlivých položek pole:


int[] i = new int[2];
i[0] = 1;
i[1] = 2;

Takto naplníme pole hned při deklaraci:


  

int[] i = new int[] {1,2};

kratší verze předchozí ukázky:


int[] i = {1,2};

Měli bychom pamatovat na fakt, že pole je v C# vždy indexováno od nuly, lze to sice změnit, ale nedoporučuje se to.

Délku pole (počet prvků, které obsahuje) je možné získat pomocí vlastnosti Lenght, kterou lze pouze číst. Délku pole uvedeného výše zjistíte takto: i.Length a dostanete hodnotu 2.

Pravoúhlá pole

C# podporuje 2 typy vícerozměrných polí: pravoúhlé a zubaté. Pravoúhlé pole je pole o více dimenzích, jejichž rozměry se po deklaraci nemění. Vytvoření pole o 2 řadách a 3 sloupcích:


int[,] squareArray = new int[2,3];

totéž, jen to naplníme hned v deklaraci:


  

int[,] squareArray = {{1, 2, 3}, {4, 5, 6}};

Třída System.Array zahrnuje metody pro odvození hranic pole. Pro horní hranici GetUpperBound(int i) a pro dolní GetLowerBound(int i), které vrací rozměry zadané dimenze.

Pro druhý rozměr pole o třech sloupcích, užijeme výrazy:


squareArray.GetLowerBound(1)

vrátí 0, a


squareArray.GetUpperBound(1)

vrátí 2.

Opět je možné použít metodu GetLength(int i), (pořád indexujete od 0)

Ukázka výpisu hodnot jednotlivých prvků pole:


for(int i = 0; i < squareArray.GetLength(0); i++)
  for (int j = 0; j < squareArray.GetLength(1); j++)
    Console.WriteLine(squareArray[i,j]);

Smyčka foreach lze také použít, ale nemáte takový přehled o tom, co bylo vybráno.

Zubaté pole

Je to vícerozměrné pole s nepravidelnými rozměry dimenzí. To je možné díky tomu, že tyto pole se deklarují jako pole polí. Nyní ukázka, jak jedna dimenze může mít 4 prvky a druhá 6:


int[][] jag = new int[2][];
jag[0] = new int [4];
jag[1] = new int [6];

Tento zápis vám odhalil, že jednotlivé dimenze odkazují na jednorozměrné celočíselné pole pole jag.

A zase naplnění již při deklaraci:


int[][] jag = new int[][] {new int[] {1, 2, 3, 4}, new int[] {5, 6, 7, 8, 9, 10}};

Při použití metod jako GetLowerBound, GetUpperBound, GetLength atd. buďme opatrní. Protože jsou postaveny na základě jednorozměrných polí a nemohou se chovat podobně jako pravoúhlá. Pozorně si projděte ukázku kódu!

Výpis obsahu jednotlivých prvků zubatého pole:


for (int i = 0; i < jag.GetLength(0); i++)
  for (int j = 0; j < jag[i].GetLength(0); j++)
    Console.WriteLine(jag[i][j]);

nebo


for (int i = 0; i < jag.Length; i++)
  for (int j = 0; j < jag[i].Length; j++)
    Console.WriteLine(jag[i][j]);

Jo abych nezapoměl, protože se mi pořád motá 1. osoba množného čísla s druhou, tak jsem se rozhodl dále články psát první osobou množného čísla, prý je to i přívětivější přístup :). A když mi občas něco ulítne, tak se omlouvám.

Zdroj: http://www.softsteel.co.uk/tutorials/cSharp/lesson6.html

×Odeslání článku na tvůj Kindle

Zadej svůj Kindle e-mail a my ti pošleme článek na tvůj Kindle.
Musíš mít povolený příjem obsahu do svého Kindle z naší e-mailové adresy kindle@programujte.com.

E-mailová adresa (např. novak@kindle.com):

TIP: Pokud chceš dostávat naše články každé ráno do svého Kindle, koukni do sekce Články do Kindle.

Hlasování bylo ukončeno    
0 hlasů
Google
Autor programuje v C#.

Nové články

Obrázek ke článku Konference: Kvalitní informační systém roste spolu se svými uživateli

Konference: Kvalitní informační systém roste spolu se svými uživateli

Informační systémy, které rostou spolu s požadavky svých uživatelů, efektivní uchování důležitých dokumentů nebo moderní uživatelská rozhraní, která maximálně zjednodušují práci s informacemi - to je jen několik z řady aktuálních trendů v oblasti podnikových informačních systémů, kterým se bude věnovat konference Firemní informační systémy, která se koná 31.5.2018 v pražském Kongresovém centru Vavruška na Karlově náměstí.

Reklama
Reklama
Obrázek ke článku Bezrealitky.cz na novém webu rychleji propojí vážné zájemce s majiteli nemovitostí

Bezrealitky.cz na novém webu rychleji propojí vážné zájemce s majiteli nemovitostí

Největší platforma pro přímý prodej a pronájem domů a bytů Bezrealitky.cz představila novou podobu svého portálu. Redesign zásadně zjednodušuje všechny transakce, mění způsob, jakým zájemci o bydlení komunikují s majiteli nemovitostí, přináší nejpřesnější filtrování nabídek na trhu, ale také umožňuje prověřovat důvěryhodnost zájemců. 

Obrázek ke článku Samba.ai: Personalizační nástroje hlásí připravenost na GDPR

Samba.ai: Personalizační nástroje hlásí připravenost na GDPR

Do ostrého nasazení nařízení GDPR, které upravuje nakládání s osobními údaji, zbývá pár dní, a vzbuzuje vrásky u řady provozovatelů služeb, které pracují s profilací návštěvníků na stránkách a personalizací obsahu. Český personalizační nástroj Samba.ai(dříve Yottly) zajišťující personalizaci webu a prediktivní automatizaci email marketingu je však slovy svého CEO Davida Vyskočila na GDPR plně připraveno. 

Hostujeme u Českého hostingu       ISSN 1801-1586       ⇡ Nahoru Webtea.cz logo © 20032018 Programujte.com
Zasadilo a pěstuje Webtea.cz, šéfredaktor Lukáš Churý