Kaip inicijuoti masyvus C#

Kaip Inicijuoti Masyvus C



C# kalboje masyvai naudojami kaip konteineriai to paties duomenų tipo elementams saugoti. Kuriant masyvą yra keli būdai jį inicijuoti elementais. Šiame straipsnyje aprašomi įvairūs masyvų inicijavimo C# metodai, pateikiant išsamų kiekvieno metodo tyrimą.

Masyvų inicijavimo C# metodai

Masyvai yra esminė kompiuterių programavimo duomenų struktūra, leidžianti saugoti ir valdyti to paties duomenų tipo elementų rinkinį gretimose atminties vietose. Štai keletas būdų, kaip inicijuoti masyvus C#:







1: Masyvų inicijavimas naudojant masyvo inicijavimo sintaksę

Paprasčiausias būdas inicijuoti masyvą yra naudoti masyvo inicijavimo sintaksę, nes tai apima masyvo elementų įtraukimą į skliaustus, atskirtus kableliais, pavyzdžiui:



tarpt [ ] skaičiai = { 1 , 2 , 3 , 4 , 5 } ;


Šiame kode sukuriamas sveikųjų skaičių masyvas pavadinimu „skaičiai“ ir inicijuojamas reikšmėmis nuo 1 iki 5. Taip pat galite naudoti tą pačią sintaksę, kad inicijuotų daugiamatį masyvą.



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


Čia yra kodo pavyzdys, kuris naudoja inicializatoriaus sintaksę, kad inicijuotų 1D ir 2D masyvą C#:





naudojant sistemą;

klasių masyvas
{
statinė tuštuma Pagrindinis ( styga [ ] args )
{
// 1D masyvo inicijavimas naudojant iniciatoriaus sintaksę
tarpt [ ] masyvas1D = { 1 , 2 , 3 , 4 , 5 } ;
Console.WriteLine ( 'Vertės masyve1D:' ) ;
dėl ( int i = 0 ; i < masyvas1D.Ilgis; i++ ) {
Console.WriteLine ( masyvas1D [ i ] ) ;
}
// 2D masyvo inicijavimas naudojant iniciatoriaus sintaksę
tarpt [ , ] masyvas2D = { { 1 , 2 } , { 3 , 4 } , { 5 , 6 } } ;
Console.WriteLine ( 'Vertės masyve2D:' ) ;
dėl ( int i = 0 ; i < masyvas2D.GetLength ( 0 ) ; i++ ) {
dėl ( int j = 0 ; j < masyvas2D.GetLength ( 1 ) ; j++ ) {
Console.WriteLine ( '({0}, {1}): {2}' , i, j, masyvas2D [ aš, j ] ) ;
}
}
}
}


Šiame kode mes naudojame inicijavimo sintaksę, kad inicijuotų 1 dimensijos sveikųjų skaičių masyvą, vadinamą masyvu1D su reikšmėmis 1, 2, 3, 4 ir 5.

Taip pat naudojame inicijavimo sintaksę, kad inicijuotų 2 dimensijų sveikųjų skaičių masyvą, vadinamą masyvu2D su reikšmėmis {1, 2}, {3, 4} ir {5, 6}.



Tada naudojame papildomas kilpas, kad peržiūrėtume kiekvieną kiekvieno masyvo elementą ir atspausdintume jo vertę konsolėje.

2: Masyvų inicijavimas naudojant naują raktinį žodį

Papildomas masyvo inicijavimo būdas apima naudojimą naujas raktažodį. Tai apima masyvo dydžio nurodymą laužtiniuose skliaustuose, po kurio nurodomas naujas raktinis žodis ir masyvo elementų duomenų tipas. Pavyzdžiui:

tarpt [ ] skaičiai = naujas tarpt [ 5 ] ;


Šis kodas sukuria sveikųjų skaičių masyvą, pavadintą skaičiais, kurių dydis yra 5, ir inicijuoja visus elementus į numatytąją reikšmę, kuri yra 0 sveikųjų skaičių masyvams.

Štai sintaksė, skirta daugiamačio masyvo inicijavimui naudojant naują raktinį žodį C#:

< tipo > [ , ] < masyvo pavadinimas > = naujas < tipo > [ < ilgis1 > , < ilgis 2 > ,... ] { { < pradinės reikšmės > } } ;


Šioje sintaksėje yra masyvo elementų duomenų tipas, yra masyvo pavadinimas, , ir tt yra masyvo ilgiai kiekviename matmenyje, o yra pradinės masyvo elementų reikšmės.

Štai pavyzdys, kaip naudoti šią sintaksę norint inicijuoti 2 dimensijų sveikųjų skaičių masyvą:

tarpt [ , ] myArray = naujas tarpt [ 3 , 2 ] { { 1 , 2 } , { 3 , 4 } , { 5 , 6 } } ;


Šiame pavyzdyje mes inicijuojame 2d sveikųjų skaičių masyvą, vadinamą myArray su 3 eilutėmis ir 2 stulpeliais, naudodami naują raktinį žodį. Taip pat pateikiame pradines kiekvieno masyvo elemento reikšmes naudodami dvigubų riestinių skliaustų sintaksę. Reikšmės yra {1, 2}, {3, 4} ir {5, 6}, atitinkančios kiekvienos eilutės elementus.

Štai pavyzdys, kaip naudoti naują raktinį žodį norint inicijuoti 1 ir 2 dimensijų masyvą C#, kartu su kodu, kad būtų išspausdintos kiekvieno masyvo reikšmės:

naudojant sistemą;

klasių masyvas
{
statinė tuštuma Pagrindinis ( styga [ ] args )
{
// Inicijuoja a 1 - matmenų masyvas
tarpt [ ] myArray1D = naujas tarpt [ ] { 1 , 2 , 3 , 4 , 5 } ;
Console.WriteLine ( „Vertės myArray1D:“ ) ;
dėl ( int i = 0 ; i < myArray1D.Length; i++ )
{
Console.WriteLine ( myArray1D [ i ] ) ;
}
// Inicijuoja a 2 - matmenų masyvas
tarpt [ , ] myArray2D = naujas tarpt [ , ] { { 1 , 2 } , { 3 , 4 } , { 5 , 6 } } ;
Console.WriteLine ( „Vertės myArray2D:“ ) ;
dėl ( int i = 0 ; i < myArray2D.GetLength ( 0 ) ; i++ )
{
dėl ( int j = 0 ; j < myArray2D.GetLength ( 1 ) ; j++ )
{
Console.WriteLine ( '({0}, {1}): {2}' , i, j, myArray2D [ aš, j ] ) ;
}
}
}
}


Šiame kode mes naudojame naują raktinį žodį, norėdami inicijuoti vienmatį sveikųjų skaičių masyvą, vadinamą myArray1D su reikšmėmis 1, 2, 3, 4 ir 5 ir dvimačiu sveikųjų skaičių masyvu, vadinamu myArray2D su reikšmėmis {1, 2}, {3, 4} ir {5, 6}.

Tada naudojame for ciklus, kad peržiūrėtume kiekvieną kiekvieno masyvo elementą ir atspausdintume jo vertę konsolėje. Atkreipkite dėmesį, kad dvimačiam masyvei naudojame GetLength () Norėdami nustatyti eilučių ir stulpelių skaičių, ir naudodami įdėtą kilpą, kad galėtumėte kartoti kiekvieną elementą.

3: Masyvų inicijavimas naudojant kilpas

Masyvai taip pat gali būti inicijuojami naudojant kilpas. Vienas iš būdų yra naudoti for kilpą, kuri leidžia kartoti masyvą ir priskirti reikšmes kiekvienam elementui.

tarpt [ ] skaičiai = naujas tarpt [ 5 ] ;
dėl ( int i = 0 ; i < skaičiai.Ilgis; i++ )
{
numeriai [ i ] = aš + 1 ;
}


Šis kodas sukuria sveikųjų skaičių masyvą, pavadintą skaičiais, kurių dydis yra 5, ir kiekvienam elementui priskiria reikšmę, lygią jo indeksui plius 1. Štai pavyzdys, kaip inicijuoti dvimatį sveikųjų skaičių masyvą C# naudojant kilpas:

tarpt [ , ] myArray = naujas tarpt [ 3 , 2 ] ;
dėl ( int i = 0 ; i < 3 ; i++ )
{
dėl ( int j = 0 ; j < 2 ; j++ )
{
myArray [ aš, j ] = i + j;
}
}


Šiame pavyzdyje mes naudojame įdėtąsias kilpas, kad galėtume kartoti kiekvieną dvimačio sveikųjų skaičių masyvo elementą, vadinamą myArray , kuriame yra 3 eilutės ir 2 stulpeliai. Kiekvieno elemento vertę nustatome į jo eilučių ir stulpelių indeksų sumą, naudodami išraišką i + j.

Štai pavyzdys, kaip naudoti kilpas, kad inicijuotų tiek 1, tiek dvimatį masyvą C#, kartu su kodu, kad būtų išspausdintos kiekvieno masyvo reikšmės:

naudojant sistemą;

klasių masyvas
{
statinė tuštuma Pagrindinis ( styga [ ] args )
{
// Inicijuoja a 1 -dimensinis masyvas naudojant kilpą
tarpt [ ] myArray1D = naujas tarpt [ 5 ] ;
dėl ( int i = 0 ; i < myArray1D.Length; i++ )
{
myArray1D [ i ] = aš + 1 ;
}
Console.WriteLine ( „Vertės myArray1D:“ ) ;
dėl ( int i = 0 ; i < myArray1D.Length; i++ )
{
Console.WriteLine ( myArray1D [ i ] ) ;
}
// Inicijuoja a 2 -dimensinis masyvas naudojant įdėtas kilpas
tarpt [ , ] myArray2D = naujas tarpt [ 3 , 2 ] ;
dėl ( int i = 0 ; i < 3 ; i++ )
{
dėl ( int j = 0 ; j < 2 ; j++ )
{
myArray2D [ aš, j ] = i + j;
}
}
Console.WriteLine ( „Vertės myArray2D:“ ) ;
dėl ( int i = 0 ; i < 3 ; i++ )
{
dėl ( int j = 0 ; j < 2 ; j++ )
{
Console.WriteLine ( '({0}, {1}): {2}' , i, j, myArray2D [ aš, j ] ) ;
}
}
}
}


Šiame kode mes naudojame for kilpą, kad inicijuotume 1 dimensijų sveikųjų skaičių masyvą, vadinamą myArray1D, kurio reikšmės yra 1, 2, 3, 4 ir 5. Mes taip pat naudojame įdėtą kilpą, kad inicijuotų 2 dimensijų sveikųjų skaičių masyvą, vadinamą myArray2D su reikšmėmis {0, 1}, {1, 2} ir {2, 3} naudojant išraišką i + j.

Tada naudokite papildomas kilpas, kad pakartotumėte kiekvieną kiekvieno masyvo elementą ir išspausdintumėte jo reikšmę konsolėje.

4: Masyvų inicijavimas naudojant Array.Copy()

Alternatyvus būdas inicijuoti masyvą apima funkcijos Array.Copy() naudojimą. Tam reikia sukurti šaltinio masyvą su norimais elementais ir nukopijuoti juos į tikslinį masyvą. Pavyzdžiui:

tarpt [ ] šaltinis = { 1 , 2 , 3 , 4 , 5 } ;
tarpt [ ] tikslas = naujas tarpt [ šaltinis.Ilgis ] ;
Masyvas.Kopijuoti ( šaltinis , tikslas, šaltinis.Ilgis ) ;


Šis kodas sukuria sveikųjų skaičių masyvą pavadinimu šaltinis su reikšmėmis nuo 1 iki 5, sukuria naują sveikųjų skaičių masyvą, pavadintą taikinys, kurio dydis yra toks pat kaip šaltinis, tada nukopijuoja elementus iš šaltinio į tikslą.

Leiskite man pateikti pavyzdį, rodantį Array.Copy naudojimą, norint inicijuoti dvimatį sveikųjų skaičių masyvą C#:

tarpt [ , ] sourceArray = { { 1 , 2 } , { 3 , 4 } , { 5 , 6 } } ;
tarpt [ , ] targetArray = naujas tarpt [ 3 , 2 ] ;

Masyvas.Kopijuoti ( sourceArray, destinationArray, sourceArray.Length ) ;


Šiame pavyzdyje turime 2 dimensijų sveikųjų skaičių masyvą, vadinamą sourceArray su 3 eilutėmis ir 2 stulpeliais. Mes naudojame Masyvas.Kopijuoti() nukopijuoti sourceArray turinį į naują 2 dimensijų sveikųjų skaičių masyvą, pavadintą destinationArray, kuriame taip pat yra 3 eilutės ir 2 stulpeliai.

The Masyvas.Kopijuoti() metodas trunka trys argumentai : šaltinio masyvas , paskirties masyvas , ir ilgio kopijuotinų duomenų. Tokiu atveju kopijuojame visą turinį sourceArray į paskirties Array , taigi praeiname šaltinisArray.Length kaip trečiasis argumentas.

Atkreipkite dėmesį, kad galite naudoti Masyvas.Kopijuoti() inicijuoti masyvus su bet kokiu matmenų skaičiumi, jei šaltinio ir paskirties masyvai turi tokį patį matmenų skaičių ir tokį patį dydį kiekviename matmenyje.

Be to, atminkite, kad Masyvas.Kopijuoti() atlieka seklią šaltinio masyvo kopiją, o tai reiškia, kad jei šaltinio masyve yra nuorodų tipų, nuorodos bus nukopijuotos, bet patys objektai nebus dubliuojami.

Čia yra visas naudojamas kodas Masyvas.Kopijuoti() funkcija inicijuoti masyvą C#:

naudojant sistemą;

klasių masyvas
{
statinė tuštuma Pagrindinis ( styga [ ] args )
{
// Inicijuoja a 1 -dimensinis masyvas naudojant Array.Copy
tarpt [ ] sourceArray1D = { 1 , 2 , 3 , 4 , 5 } ;
tarpt [ ] paskirtiesArray1D = naujas tarpt [ 5 ] ;
Masyvas.Kopijuoti ( šaltinisArray1D, paskirtiesArray1D, šaltinisArray1D.Length ) ;
Console.WriteLine ( 'Vertės paskirties masyvas1D:' ) ;
dėl ( int i = 0 ; i < paskirtiesArray1D.Length; i++ ) {
Console.WriteLine ( paskirties Array1D [ i ] ) ;
}
// Inicijuoja a 2 -dimensinis masyvas naudojant Array.Copy
tarpt [ , ] sourceArray2D = { { 1 , 2 } , { 3 , 4 } , { 5 , 6 } } ;
tarpt [ , ] targetArray2D = naujas tarpt [ 3 , 2 ] ;
Masyvas.Kopijuoti ( sourceArray2D, destinationArray2D, sourceArray2D.Length ) ;
Console.WriteLine ( 'Vertės paskirties masyvas2D:' ) ;
dėl ( int i = 0 ; i < paskirtiesArray2D.GetLength ( 0 ) ; i++ ) {
dėl ( int j = 0 ; j < paskirtiesArray2D.GetLength ( 1 ) ; j++ ) {
Console.WriteLine ( '({0}, {1}): {2}' , i, j, paskirties Array2D [ aš, j ] ) ;
}
}
}
}


Šiame kode mes naudojame Masyvas.Kopijuoti() inicijuoti 1 dimensijos sveikųjų skaičių masyvą, pavadintą destinationArray1D su reikšmėmis 1, 2, 3, 4 ir 5 iš šaltinio masyvo, vadinamo sourceArray1D.

Mes taip pat naudojame Masyvas.Kopijuoti() inicijuoti 2 dimensijų sveikųjų skaičių masyvą, pavadintą destinationArray2D su reikšmėmis {1, 2}, {3, 4} ir {5, 6} iš šaltinio masyvo, vadinamo sourceArray2D.

Tada naudojame papildomas kilpas, kad galėtume kartoti kiekvieną kiekvieno masyvo elementą ir atspausdinti jo vertę konsolėje.

Išvada

Šiame straipsnyje mes ištyrėme įvairius būdus, kaip inicijuoti masyvus C#. Mes apžvelgėme masyvo inicijavimo sintaksę, naudodami naują raktinį žodį, inicijuodami masyvus naudodami kilpas ir naudodami Array.Copy() metodą. Priklausomai nuo konkretaus naudojimo atvejo, kiekvienas iš šių metodų turi savo privalumų ir trūkumų. Susipažinę su šiais įvairiais metodais galėsite pasirinkti tinkamiausią pagal jūsų poreikius.