C#'ta Dizileri Başlatma

C Ta Dizileri Baslatma



C#'ta diziler, aynı veri türündeki öğeleri depolamak için kaplar olarak hizmet eder. Bir dizi oluştururken, onu öğelerle başlatmak için birden fazla yaklaşım vardır. Bu makale, C#'ta dizileri başlatmanın farklı yöntemlerini inceleyerek her bir yaklaşımın kapsamlı bir incelemesini sağlar.

C#'ta Dizileri Başlatma Yöntemleri

Diziler, bitişik bellek konumlarında aynı veri türündeki bir öğe koleksiyonunu depolamanıza ve değiştirmenize izin veren bilgisayar programlamasında temel bir veri yapısıdır. C#'ta dizileri başlatmanın bazı yolları şunlardır:







1: Dizi Başlatıcı Sözdizimini Kullanarak Dizileri Başlatma

Bir diziyi başlatmak için en basit yaklaşım, dizi başlatıcı sözdizimini kullanmaktır, çünkü bu, dizi öğelerinin virgüllerle ayrılmış parantez içine alınmasını içerir, örneğin:



int [ ] sayılar = { 1 , 2 , 3 , 4 , 5 } ;


Bu kodda, 'sayılar' adlı bir tamsayı dizisi oluşturulur ve 1'den 5'e kadar olan değerlerle başlatılır. Benzer şekilde, çok boyutlu bir diziyi başlatmak için aynı sözdizimini kullanabilirsiniz.



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


C#'ta bir 1B ve 2B diziyi başlatmak için başlatıcı sözdizimini kullanan örnek bir kod:





Sistemi kullanarak;

sınıf dizisi
{
statik boşluk Ana ( sicim [ ] argümanlar )
{
// Başlatıcı sözdizimini kullanarak bir 1B diziyi başlatma
int [ ] dizi1D = { 1 , 2 , 3 , 4 , 5 } ;
Konsol.WriteLine ( 'array1D'deki değerler:' ) ;
için ( int ben = 0 ; Ben < dizi1D.Uzunluk; ben++ ) {
Konsol.WriteLine ( dizi1D [ Ben ] ) ;
}
// Başlatıcı sözdizimini kullanarak bir 2B diziyi başlatma
int [ , ] dizi2D = { { 1 , 2 } , { 3 , 4 } , { 5 , 6 } } ;
Konsol.WriteLine ( 'array2D'deki değerler:' ) ;
için ( int ben = 0 ; Ben < dizi2D.GetLength ( 0 ) ; ben++ ) {
için ( int j = 0 ; J < dizi2D.GetLength ( 1 ) ; j++ ) {
Konsol.WriteLine ( '({0}, {1}): {2}' , ben, j, dizi2D [ ben, j ] ) ;
}
}
}
}


Bu kodda, 1, 2, 3, 4 ve 5 değerleri ile array1D adlı 1 boyutlu bir tamsayı dizisini başlatmak için başlatıcı sözdizimini kullanıyoruz.

Ayrıca {1, 2}, {3, 4} ve {5, 6} değerleri ile array2D adlı 2 boyutlu bir tamsayı dizisini başlatmak için başlatıcı sözdizimini kullanıyoruz.



Daha sonra, her dizinin her öğesini yinelemek ve değerini konsola yazdırmak için ek for döngüleri kullanıyoruz.

2: Yeni Anahtar Kelimeyi Kullanarak Dizileri Başlatma

Bir diziyi başlatmak için ek bir yöntem, yeni anahtar kelime. Bu, dizinin boyutunu köşeli parantez içinde belirtmeyi, ardından new anahtar sözcüğünü ve ardından dizi öğelerinin veri türünü içerir. Örneğin:

int [ ] sayılar = yeni int [ 5 ] ;


Bu kod, 5 boyutunda sayılar adlı bir tamsayı dizisi oluşturur ve tüm öğeleri, tamsayı dizileri için 0 olan varsayılan değerlerine sıfırlar.

C#'ta new anahtar sözcüğünü kullanarak çok boyutlu bir diziyi başlatmanın sözdizimi şöyledir:

< tip > [ , ] < diziAdı > = yeni < tip > [ < uzunluk1 > , < uzunluk2 > , ... ] { { < başlangıç ​​değerleri > } } ;


Bu söz diziminde, dizi öğelerinin veri tipidir, dizinin adıdır, , vb. dizinin her boyuttaki uzunluklarıdır ve dizi öğelerinin başlangıç ​​değerleridir.

2 boyutlu bir tamsayı dizisini başlatmak için bu sözdiziminin nasıl kullanılacağına dair bir örnek:

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


Bu örnekte, new anahtar sözcüğünü kullanarak 3 satır ve 2 sütun içeren myArray adında bir 2d tamsayı dizisini başlatıyoruz. Ayrıca çift kaşlı ayraç sözdizimini kullanarak dizinin her öğesi için başlangıç ​​değerleri sağlıyoruz. Değerler, her satırdaki öğelere karşılık gelen {1, 2}, {3, 4} ve {5, 6} şeklindedir.

C#'ta hem 1 boyutlu hem de 2 boyutlu bir diziyi başlatmak için new anahtar sözcüğünün nasıl kullanılacağına bir örnek ve her dizideki değerleri yazdırmak için kod:

Sistemi kullanarak;

sınıf dizisi
{
statik boşluk Ana ( sicim [ ] argümanlar )
{
// bir başlatılıyor 1 boyutlu dizi
int [ ] myArray1D = yeni int [ ] { 1 , 2 , 3 , 4 , 5 } ;
Konsol.WriteLine ( 'myArray1D'deki değerler:' ) ;
için ( int ben = 0 ; Ben < myArray1D.Length; ben++ )
{
Konsol.WriteLine ( dizim1D [ Ben ] ) ;
}
// bir başlatılıyor 2 boyutlu dizi
int [ , ] myArray2D = yeni int [ , ] { { 1 , 2 } , { 3 , 4 } , { 5 , 6 } } ;
Konsol.WriteLine ( 'myArray2D'deki değerler:' ) ;
için ( int ben = 0 ; Ben < myArray2D.GetLength ( 0 ) ; ben++ )
{
için ( int j = 0 ; J < myArray2D.GetLength ( 1 ) ; j++ )
{
Konsol.WriteLine ( '({0}, {1}): {2}' , ben, j, dizim2D [ ben, j ] ) ;
}
}
}
}


Bu kodda, adı verilen tek boyutlu bir tamsayı dizisini başlatmak için new anahtar sözcüğünü kullanıyoruz. dizim1D 1, 2, 3, 4 ve 5 değerleri ve adı verilen 2 boyutlu bir tamsayı dizisi ile dizim2D {1, 2}, {3, 4} ve {5, 6} değerleri ile.

Daha sonra, her dizinin her öğesini yinelemek ve değerini konsola yazdırmak için for döngülerini kullanıyoruz. 2 boyutlu dizi için kullandığımıza dikkat edin. GetLength() satır ve sütun sayısını belirlemek ve her öğeyi yinelemek için iç içe for döngüleri kullanmak.

3: Döngüleri Kullanarak Dizileri Başlatma

Diziler, döngüler kullanılarak da başlatılabilir. Bir yaklaşım, diziyi yinelemenizi ve her öğeye değer atamanızı sağlayan bir for döngüsü kullanmaktır.

int [ ] sayılar = yeni int [ 5 ] ;
için ( int ben = 0 ; Ben < sayılar.Uzunluk; ben++ )
{
sayılar [ Ben ] = ben + 1 ;
}


Bu kod, 5 boyutunda sayılar adlı bir tamsayı dizisi oluşturur ve her öğeye kendi dizini artı 1'e eşit bir değer atar. Döngüler kullanarak C#'ta 2 boyutlu bir tamsayı dizisinin nasıl başlatılacağına bir örnek:

int [ , ] dizim = yeni int [ 3 , 2 ] ;
için ( int ben = 0 ; Ben < 3 ; ben++ )
{
için ( int j = 0 ; J < 2 ; j++ )
{
dizim [ ben, j ] = ben + j;
}
}


Bu örnekte, adı verilen 2 boyutlu bir tamsayı dizisinin her öğesini yinelemek için iç içe for döngüleri kullanıyoruz. dizim 3 satırı ve 2 sütunu olan. Her öğe için, i + j ifadesini kullanarak değerini satır ve sütun indekslerinin toplamına ayarlıyoruz.

C#'ta hem 1 boyutlu hem de 2 boyutlu bir diziyi başlatmak için döngülerin nasıl kullanılacağına bir örnek ve her dizideki değerleri yazdırmak için kod:

Sistemi kullanarak;

sınıf dizisi
{
statik boşluk Ana ( sicim [ ] argümanlar )
{
// bir başlatılıyor 1 döngü kullanan boyutlu dizi
int [ ] myArray1D = yeni int [ 5 ] ;
için ( int ben = 0 ; Ben < myArray1D.Length; ben++ )
{
dizim1D [ Ben ] = ben + 1 ;
}
Konsol.WriteLine ( 'myArray1D'deki değerler:' ) ;
için ( int ben = 0 ; Ben < myArray1D.Length; ben++ )
{
Konsol.WriteLine ( dizim1D [ Ben ] ) ;
}
// bir başlatılıyor 2 iç içe döngüler kullanan boyutlu dizi
int [ , ] myArray2D = yeni int [ 3 , 2 ] ;
için ( int ben = 0 ; Ben < 3 ; ben++ )
{
için ( int j = 0 ; J < 2 ; j++ )
{
dizim2D [ ben, j ] = ben + j;
}
}
Konsol.WriteLine ( 'myArray2D'deki değerler:' ) ;
için ( int ben = 0 ; Ben < 3 ; ben++ )
{
için ( int j = 0 ; J < 2 ; j++ )
{
Konsol.WriteLine ( '({0}, {1}): {2}' , ben, j, dizim2D [ ben, j ] ) ;
}
}
}
}


Bu kodda, 1, 2, 3, 4 ve 5 değerleri ile myArray1D adlı 1 boyutlu bir tamsayı dizisini başlatmak için bir for döngüsü kullanıyoruz. Ayrıca 2 boyutlu bir tamsayı dizisini başlatmak için iç içe for döngüleri kullanıyoruz. i + j ifadesini kullanarak {0, 1}, {1, 2} ve {2, 3} değerleriyle myArray2D.

Ardından, her dizinin her öğesini yinelemek ve değerini konsola yazdırmak için ek for döngüleri kullanın.

4: Array.Copy() Kullanarak Dizileri Başlatma

Bir diziyi başlatmaya yönelik alternatif bir yaklaşım, Array.Copy() işlevinin kullanılmasını içerir. Bu, istenen öğelerle bir kaynak dizi oluşturmayı ve ardından bunları bir hedef diziye kopyalamayı içerir. Örneğin:

int [ ] kaynak = { 1 , 2 , 3 , 4 , 5 } ;
int [ ] hedef = yeni int [ kaynak.Uzunluk ] ;
Dizi.Kopya ( kaynak , hedef, kaynak.Uzunluk ) ;


Bu kod, 1'den 5'e kadar olan değerlerle kaynak adlı bir tamsayı dizisi oluşturur, kaynakla aynı boyutta hedef adlı yeni bir tamsayı dizisi oluşturur ve ardından öğeleri kaynaktan hedefe kopyalar.

C#'ta iki boyutlu bir tamsayı dizisini başlatmak için Array.Copy kullanımını gösteren bir örnek sunmama izin verin:

int [ , ] kaynak Dizisi = { { 1 , 2 } , { 3 , 4 } , { 5 , 6 } } ;
int [ , ] hedef Dizi = yeni int [ 3 , 2 ] ;

Dizi.Kopya ( kaynakArray, hedefArray, kaynakArray.Length ) ;


Bu örnekte, adında 2 boyutlu bir tamsayı dizimiz var. kaynak Dizisi 3 satır ve 2 sütun ile. Kullanıyoruz Dizi.Kopya() sourceArray'in içeriğini, yine 3 satır ve 2 sütuna sahip olan targetArray adlı yeni bir 2 boyutlu tamsayı dizisine kopyalamak için.

bu Dizi.Kopya() yöntem alır üç argüman : kaynak dizisi , hedef dizi , ve uzunluk kopyalanacak verilerin listesi. Bu durumda, tüm içeriği kopyalıyoruz. kaynak Dizisi içine hedef dizi , böylece geçiyoruz sourceArray.Length üçüncü argüman olarak.

kullanabileceğinizi unutmayın. Dizi.Kopya() kaynak ve hedef diziler aynı sayıda boyuta ve her boyutta aynı boyuta sahip olduğu sürece dizileri herhangi bir sayıda boyutla başlatmak için.

Ayrıca, unutmayın ki Dizi.Kopya() kaynak dizinin yüzeysel bir kopyasını gerçekleştirir; bu, kaynak dizi referans türleri içeriyorsa, referansların kopyalanacağı ancak nesnelerin kendilerinin çoğaltılmayacağı anlamına gelir.

İşte kullanılan tam kod Dizi.Kopya() diziyi C# dilinde başlatma işlevi:

Sistemi kullanarak;

sınıf dizisi
{
statik boşluk Ana ( sicim [ ] argümanlar )
{
// bir başlatılıyor 1 Array.Copy kullanan boyutlu dizi
int [ ] kaynakDizi1D = { 1 , 2 , 3 , 4 , 5 } ;
int [ ] hedefDizi1D = yeni int [ 5 ] ;
Dizi.Kopya ( kaynakDizi1D, hedefDizi1D, kaynakDizi1D.Uzunluk ) ;
Konsol.WriteLine ( 'destinasyonArray1D'deki değerler:' ) ;
için ( int ben = 0 ; Ben < hedefDizi1D.Uzunluk; ben++ ) {
Konsol.WriteLine ( hedef Dizi1D [ Ben ] ) ;
}
// bir başlatılıyor 2 Array.Copy kullanan boyutlu dizi
int [ , ] kaynakDizi2D = { { 1 , 2 } , { 3 , 4 } , { 5 , 6 } } ;
int [ , ] hedefArray2D = yeni int [ 3 , 2 ] ;
Dizi.Kopya ( kaynakDizi2D, hedefDizi2D, kaynakDizi2D.Uzunluk ) ;
Konsol.WriteLine ( 'destinasyonArray2D'deki değerler:' ) ;
için ( int ben = 0 ; Ben < hedefArray2D.GetLength ( 0 ) ; ben++ ) {
için ( int j = 0 ; J < hedefArray2D.GetLength ( 1 ) ; j++ ) {
Konsol.WriteLine ( '({0}, {1}): {2}' , i, j, hedef Dizi2D [ ben, j ] ) ;
}
}
}
}


Bu kodda, kullanıyoruz Dizi.Kopya() sourceArray1D adlı bir kaynak diziden 1, 2, 3, 4 ve 5 değerleri ile destinasyonArray1D adlı 1 boyutlu bir tamsayı dizisini başlatmak için.

biz de kullanıyoruz Dizi.Kopya() sourceArray2D adlı bir kaynak diziden {1, 2}, {3, 4} ve {5, 6} değerleriyle destinasyonArray2D adlı 2 boyutlu bir tamsayı dizisini başlatmak için.

Daha sonra, her dizinin her öğesini yinelemek ve değerini konsola yazdırmak için ek for döngüleri kullanıyoruz.

Çözüm

Bu makalede, C#'ta dizileri başlatmanın farklı yollarını araştırdık. new anahtar sözcüğünü kullanarak, döngüleri kullanarak dizileri başlatırken ve Array.Copy() yöntemini kullanarak dizi başlatıcı sözdizimini ele aldık. Spesifik kullanım durumuna bağlı olarak, bu yöntemlerin her biri kendi avantaj ve dezavantajlarına sahiptir. Kendinizi bu farklı yaklaşımlara alıştırmak, özel gereksinimleriniz için en uygun olanı seçmenizi sağlayacaktır.