Jak inicializovat pole v C#

Jak Inicializovat Pole V C



V C# slouží pole jako kontejnery pro ukládání prvků stejného datového typu. Při vytváření pole existuje několik přístupů k jeho inicializaci pomocí prvků. Tento článek se ponoří do různých metod inicializace polí v C# a poskytuje komplexní průzkum každého přístupu.

Metody inicializace polí v C#

Pole jsou základní datovou strukturou v počítačovém programování, která vám umožňuje ukládat a manipulovat s kolekcí prvků stejného datového typu v souvislých paměťových místech. Zde je několik způsobů, jak inicializovat pole v C#:







1: Inicializace polí pomocí syntaxe inicializátoru pole

Nejpřímější přístup k inicializaci pole je použití syntaxe inicializátoru pole, protože to zahrnuje uzavření prvků pole do složených závorek, oddělených čárkami, například:



int [ ] čísla = { 1 , 2 , 3 , 4 , 5 } ;


V tomto kódu je vytvořeno celočíselné pole s názvem „čísla“ a inicializováno hodnotami 1 až 5. Podobně můžete použít stejnou syntaxi k inicializaci vícerozměrného pole.



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


Zde je příklad kódu, který používá syntaxi inicializátoru k inicializaci 1D a 2D pole v C#:





pomocí systému;

pole třídy
{
statické prázdno Hlavní ( tětiva [ ] argumenty )
{
// Inicializace 1D pole pomocí syntaxe inicializátoru
int [ ] pole1D = { 1 , 2 , 3 , 4 , 5 } ;
Console.WriteLine ( 'Hodnoty v poli1D:' ) ;
pro ( int i = 0 ; i < pole1D.Length; i++ ) {
Console.WriteLine ( pole1D [ i ] ) ;
}
// Inicializace 2D pole pomocí syntaxe inicializátoru
int [ , ] pole2D = { { 1 , 2 } , { 3 , 4 } , { 5 , 6 } } ;
Console.WriteLine ( 'Hodnoty v poli 2D:' ) ;
pro ( int i = 0 ; i < array2D.GetLength ( 0 ) ; i++ ) {
pro ( int j = 0 ; j < array2D.GetLength ( 1 ) ; j++ ) {
Console.WriteLine ( '({0}, {1}): {2}' , i, j, pole2D [ i, j ] ) ;
}
}
}
}


V tomto kódu používáme syntaxi inicializátoru k inicializaci jednorozměrného celočíselného pole nazvaného pole1D s hodnotami 1, 2, 3, 4 a 5.

Syntaxi inicializátoru také používáme k inicializaci dvourozměrného celočíselného pole s názvem array2D s hodnotami {1, 2}, {3, 4} a {5, 6}.



Potom používáme další cykly for k iteraci každého prvku každého pole a vytištění jeho hodnoty do konzole.

2: Inicializace polí pomocí nového klíčového slova

Další metoda pro inicializaci pole zahrnuje použití Nový klíčové slovo. To zahrnuje zadání velikosti pole v hranatých závorkách, za kterým následuje klíčové slovo new a poté datový typ prvků pole. Například:

int [ ] čísla = nový int [ 5 ] ;


Tento kód vytvoří celočíselné pole s názvem čísla o velikosti 5 a inicializuje všechny prvky na jejich výchozí hodnotu, která je 0 pro celočíselná pole.

Zde je syntaxe pro inicializaci vícerozměrného pole pomocí nového klíčového slova v C#:

< typ > [ , ] < název pole > = nový < typ > [ < délka1 > , < délka2 > ,... ] { { < počáteční hodnoty > } } ;


V této syntaxi je datovým typem prvků pole, je název pole, , atd. jsou délky pole v každé dimenzi a jsou počáteční hodnoty prvků pole.

Zde je příklad, jak použít tuto syntaxi k inicializaci 2-rozměrného celočíselného pole:

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


V tomto příkladu inicializujeme 2d celočíselné pole nazvané myArray se 3 řádky a 2 sloupci pomocí klíčového slova new. Poskytujeme také počáteční hodnoty pro každý prvek pole pomocí syntaxe dvojitých složených závorek. Hodnoty jsou {1, 2}, {3, 4} a {5, 6}, které odpovídají prvkům v každém řádku.

Zde je příklad, jak použít nové klíčové slovo k inicializaci 1-rozměrného i 2-rozměrného pole v C#, spolu s kódem pro tisk hodnot v každém poli:

pomocí systému;

pole třídy
{
statické prázdno Hlavní ( tětiva [ ] argumenty )
{
// Inicializace a 1 -rozměrné pole
int [ ] myArray1D = new int [ ] { 1 , 2 , 3 , 4 , 5 } ;
Console.WriteLine ( 'Hodnoty v myArray1D:' ) ;
pro ( int i = 0 ; i < myArray1D.Length; i++ )
{
Console.WriteLine ( myArray1D [ i ] ) ;
}
// Inicializace a 2 -rozměrné pole
int [ , ] myArray2D = new int [ , ] { { 1 , 2 } , { 3 , 4 } , { 5 , 6 } } ;
Console.WriteLine ( 'Hodnoty v myArray2D:' ) ;
pro ( int i = 0 ; i < myArray2D.GetLength ( 0 ) ; i++ )
{
pro ( int j = 0 ; j < myArray2D.GetLength ( 1 ) ; j++ )
{
Console.WriteLine ( '({0}, {1}): {2}' , i, j, myArray2D [ i, j ] ) ;
}
}
}
}


V tomto kódu používáme klíčové slovo new k inicializaci jednorozměrného celočíselného pole nazvaného myArray1D s hodnotami 1, 2, 3, 4 a 5 a 2-rozměrným celočíselným polem tzv. myArray2D s hodnotami {1, 2}, {3, 4} a {5, 6}.

Potom používáme cykly for k iteraci každého prvku každého pole a vytištění jeho hodnoty do konzole. Všimněte si, že pro 2-rozměrné pole, které používáme GetLength() určit počet řádků a sloupců a pomocí vnořených smyček for iterovat každý prvek.

3: Inicializace polí pomocí smyček

Pole lze také inicializovat pomocí smyček. Jedním z přístupů je použití cyklu for, který vám umožňuje iterovat pole a přiřazovat hodnoty každému prvku.

int [ ] čísla = nový int [ 5 ] ;
pro ( int i = 0 ; i < čísla.Délka; i++ )
{
čísla [ i ] = i + 1 ;
}


Tento kód vytvoří celočíselné pole s názvem čísla o velikosti 5 a každému prvku přiřadí hodnotu rovnou jeho indexu plus 1. Zde je příklad, jak inicializovat 2rozměrné celočíselné pole v C# pomocí smyček:

int [ , ] myArray = new int [ 3 , 2 ] ;
pro ( int i = 0 ; i < 3 ; i++ )
{
pro ( int j = 0 ; j < 2 ; j++ )
{
myArray [ i, j ] = i + j;
}
}


V tomto příkladu používáme vnořené cykly for k iteraci každým prvkem 2-rozměrného celočíselného pole s názvem myArray , který má 3 řádky a 2 sloupce. Pro každý prvek nastavujeme jeho hodnotu na součet jeho řádkových a sloupcových indexů pomocí výrazu i + j.

Zde je příklad, jak používat smyčky k inicializaci 1-rozměrného i 2-rozměrného pole v C#, spolu s kódem pro tisk hodnot v každém poli:

pomocí systému;

pole třídy
{
statické prázdno Hlavní ( tětiva [ ] argumenty )
{
// Inicializace a 1 -rozměrné pole pomocí smyčky
int [ ] myArray1D = new int [ 5 ] ;
pro ( int i = 0 ; i < myArray1D.Length; i++ )
{
myArray1D [ i ] = i + 1 ;
}
Console.WriteLine ( 'Hodnoty v myArray1D:' ) ;
pro ( int i = 0 ; i < myArray1D.Length; i++ )
{
Console.WriteLine ( myArray1D [ i ] ) ;
}
// Inicializace a 2 -dimenzionální pole pomocí vnořených smyček
int [ , ] myArray2D = new int [ 3 , 2 ] ;
pro ( int i = 0 ; i < 3 ; i++ )
{
pro ( int j = 0 ; j < 2 ; j++ )
{
myArray2D [ i, j ] = i + j;
}
}
Console.WriteLine ( 'Hodnoty v myArray2D:' ) ;
pro ( int i = 0 ; i < 3 ; i++ )
{
pro ( int j = 0 ; j < 2 ; j++ )
{
Console.WriteLine ( '({0}, {1}): {2}' , i, j, myArray2D [ i, j ] ) ;
}
}
}
}


V tomto kódu používáme cyklus for k inicializaci 1-rozměrného celočíselného pole nazvaného myArray1D s hodnotami 1, 2, 3, 4 a 5. Také používáme vnořené cykly for k inicializaci 2-rozměrného celočíselného pole s názvem myArray2D s hodnotami {0, 1}, {1, 2} a {2, 3} pomocí výrazu i + j.

Poté pomocí dalších smyček for iterujte každý prvek každého pole a vytiskněte jeho hodnotu do konzoly.

4: Inicializace polí pomocí Array.Copy()

Alternativní přístup k inicializaci pole zahrnuje použití funkce Array.Copy(). To zahrnuje vytvoření zdrojového pole s požadovanými prvky a jejich následné zkopírování do cílového pole. Například:

int [ ] zdroj = { 1 , 2 , 3 , 4 , 5 } ;
int [ ] cíl = nový int [ zdroj.Délka ] ;
Array.Copy ( zdroj , cíl, zdroj. Délka ) ;


Tento kód vytvoří celočíselné pole s názvem source s hodnotami 1 až 5, vytvoří nové celočíselné pole s názvem target se stejnou velikostí jako zdroj a poté zkopíruje prvky ze zdroje do cíle.

Dovolte mi uvést příklad demonstrující využití Array.Copy k inicializaci dvourozměrného celočíselného pole v C#:

int [ , ] sourceArray = { { 1 , 2 } , { 3 , 4 } , { 5 , 6 } } ;
int [ , ] destinationArray = new int [ 3 , 2 ] ;

Array.Copy ( sourceArray, destinationArray, sourceArray.Length ) ;


V tomto příkladu máme tzv. 2rozměrné celočíselné pole sourceArray se 3 řádky a 2 sloupci. Používáme Array.Copy() pro zkopírování obsahu sourceArray do nového 2-rozměrného celočíselného pole nazvaného destinationArray, které má také 3 řádky a 2 sloupce.

The Array.Copy() metoda trvá tři argumenty : zdrojové pole , cílové pole a délka dat, která mají být zkopírována. V tomto případě kopírujeme celý obsah sourceArray do destinationArray , tak projdeme sourceArray.Length jako třetí argument.

Všimněte si, že můžete použít Array.Copy() inicializovat pole s libovolným počtem dimenzí, pokud zdrojová a cílová pole mají stejný počet dimenzí a stejnou velikost v každé dimenzi.

Také mějte na paměti, že Array.Copy() provede mělkou kopii zdrojového pole, což znamená, že pokud zdrojové pole obsahuje typy odkazů, budou odkazy zkopírovány, ale samotné objekty nebudou duplikovány.

Zde je kompletní kód, který používá Array.Copy() funkce pro inicializaci pole v C#:

pomocí systému;

pole třídy
{
statické prázdno Hlavní ( tětiva [ ] argumenty )
{
// Inicializace a 1 -dimenzionální pole pomocí Array.Copy
int [ ] sourceArray1D = { 1 , 2 , 3 , 4 , 5 } ;
int [ ] destinationArray1D = new int [ 5 ] ;
Array.Copy ( sourceArray1D, destinationArray1D, sourceArray1D.Length ) ;
Console.WriteLine ( 'Hodnoty v destinationArray1D:' ) ;
pro ( int i = 0 ; i < destinationArray1D.Length; i++ ) {
Console.WriteLine ( destinationArray1D [ i ] ) ;
}
// Inicializace a 2 -dimenzionální pole pomocí Array.Copy
int [ , ] sourceArray2D = { { 1 , 2 } , { 3 , 4 } , { 5 , 6 } } ;
int [ , ] destinationArray2D = new int [ 3 , 2 ] ;
Array.Copy ( sourceArray2D, destinationArray2D, sourceArray2D.Length ) ;
Console.WriteLine ( 'Hodnoty v destinationArray2D:' ) ;
pro ( int i = 0 ; i < destinationArray2D.GetLength ( 0 ) ; i++ ) {
pro ( int j = 0 ; j < destinationArray2D.GetLength ( 1 ) ; j++ ) {
Console.WriteLine ( '({0}, {1}): {2}' , i, j, destinationArray2D [ i, j ] ) ;
}
}
}
}


V tomto kódu používáme Array.Copy() k inicializaci jednorozměrného celočíselného pole nazvaného destinationArray1D s hodnotami 1, 2, 3, 4 a 5 ze zdrojového pole s názvem sourceArray1D.

Také používáme Array.Copy() k inicializaci 2-rozměrného celočíselného pole s názvem destinationArray2D s hodnotami {1, 2}, {3, 4} a {5, 6} ze zdrojového pole s názvem sourceArray2D.

Potom používáme další cykly for k iteraci každého prvku každého pole a vytištění jeho hodnoty do konzole.

Závěr

V tomto článku jsme prozkoumali různé způsoby inicializace polí v C#. Zabývali jsme se syntaxí inicializátoru pole pomocí klíčového slova new, inicializací polí pomocí smyček a pomocí metody Array.Copy(). V závislosti na konkrétním případu použití má každá z těchto metod svůj vlastní soubor výhod a nevýhod. Seznámení s těmito různými přístupy vám umožní vybrat ten nejvhodnější pro vaše konkrétní požadavky.