29 Ekim 2013 Salı

C# Diziler

Bir dizi veri yapısında aynı türde birden fazla değişken depolayabilirsiniz. Bir diziyi, öğelerinin türünü belirterek bildirirsiniz.
type[] arrayName;
Aşağıdaki örnekler tek boyutlu, çok boyutlu ve düzensiz diziler oluşturur:
class TestArraysClass
{
    static void Main()
    {
        // Declare a single-dimensional array 
        int[] array1 = new int[5];

        // Declare and set array element values
        int[] array2 = new int[] { 1, 3, 5, 7, 9 };

        // Alternative syntax
        int[] array3 = { 1, 2, 3, 4, 5, 6 };

        // Declare a two dimensional array
        int[,] multiDimensionalArray1 = new int[2, 3];

        // Declare and set array element values
        int[,] multiDimensionalArray2 = { { 1, 2, 3 }, { 4, 5, 6 } };

        // Declare a jagged array
        int[][] jaggedArray = new int[6][];

        // Set the values of the first array in the jagged array structure
        jaggedArray[0] = new int[4] { 1, 2, 3, 4 };
    }
}


Dizilere Genel Bakış 
Bir dizi aşağıdaki özelliklere sahiptir:
  • Boyutların sayısı ve her boyutun uzunluğu, dizi örneği yaratılırken oluşturulur. Bu değerler örneğin kullanım süresi boyunca değiştirilemez.
  • Sayısal dizi öğelerinin varsayılan değerleri sıfır ve başvuru öğeleri null olarak ayarlanır.
  • Düzensiz dizi, dizilerden oluşan bir dizidir ve bu nedenle öğeleri başvuru türleridir ve null olarak başlatılır.
  • Diziler sıfır dizinlidir: n öğe içeren bir dizi, 0 ila n-1 arasında dizinlenir.
  • Dizi öğeleri, dizi türü de dahil olmak üzere, herhangi bir türde olabilir.
  • Dizi türleri, Array soyut temel türünden türetilmiş başvuru türleridir. Bu tür IEnumerable ve IEnumerable<T> uyguladığından foreach yinelemesini C# içindeki dizilerde kullanabilirsiniz.
  • Bir dizi; Tek Boyutlu, Çok Boyutlu veya Düzensiz olabilir.

  • 1-Tek Boyutlu Diziler
    ir tek boyutlu dizisi aşağıdaki örnekte gösterildiği gibi beş bildirebilirsiniz:
    int[] array = new int[5];
    
    
    
    Bu dizi gelen öğeleri içeren array[0] için array[4]. Yeni işleci bir dizi oluşturmak ve dizi öğelerinin varsayılan değerlerine başlatmak için kullanılır. Bu örnekte, dizi öğelerinin sıfır olarak başlatılır.
    Dize öğelerini saklar bir dizi yolla bildirilebilir. Örne?in:
    string[] stringArray = new string[6];
    
    
    Dizi Başlatma
    Bildirimi üzerine bir diziyi başlatmak mümkündür, bu durumda, sıra belirticisi gerekli olmadığında çünkü zaten başlatma listesindeki öğeleri sayısı tarafından sağlanır. Örne?in:
    int[] array1 = new int[] { 1, 3, 5, 7, 9 };
    
    
    
    Dize dizisi, aynı şekilde başlatılabilir. Dize dizisi bildirimi her dizi öğesine bir gün adıyla burada başlatılan aşağıdadır:
    string[] weekDays = { "Sun", "Mon", "Tue", "Wed", "Thu", "Fri", "Sat" };
    
    
    
    Bildirim üzerine bir diziyi başlatmak olduğunda aşağıdaki kısayolları kullanabilirsiniz:
    int[] array2 = { 1, 3, 5, 7, 9 };
    string[] weekDays2 = { "Sun", "Mon", "Tue", "Wed", "Thu", "Fri", "Sat" };
    
    
    
    Başlatma olmadan bir dizi değişkeni bildirmek mümkündür, ancak kullanmanız gerekir new bir dizi Bu değişkene atarken işleci. Örne?in:
    int[] array3;
    array3 = new int[] { 1, 3, 5, 7, 9 };   // OK
    //array3 = {1, 3, 5, 7, 9};   // Error
    
    
    
    C# 3.0 örtülü olarak türlenmiş dizi tanıtır. Daha fazla bilgi için bkz. Türü Örtük Olarak Belirlenmiş Diziler (C# Programlama Kılavuzu).
    Değer Türü ve Başvuru Türü Diziler

    Dizi strFormAdı göz önünde bulundurun:
    SomeType[] array4 = new SomeType[10];
    
    
    
    Bu deyimin sonucu bağlıdır SomeType bir deðer türü ya da bir başvuru türü. Bir değer türü ise, ifade 10 öğelerinin her birinin türü olan bir dizi yaratır SomeType. SomeType Bir başvuru türü olan bir dizi 10 öğelerinin her biri null başvuru başlatılmış deyimi oluşturur.
    2-Çok Boyutlu Diziler
    Diziler, birden fazla boyut olabilir. Örneğin, aşağıdaki bildiriyi, dört satır ve iki sütun iki boyutlu bir dizi oluşturur.
    int[,] array = new int[4, 2];
    
    
    
    Aşağıdaki üç dizisi oluşturur boyutlarını, 4, 2 ve 3.
    int[, ,] array1 = new int[4, 2, 3];
    
    
    
    Dizi Başlatma

    Dizi bildirimi üzerine, aşağıdaki örnekte gösterildiği gibi baþlatabilirsiniz.
    // Two-dimensional array.
    int[,] array2D = new int[,] { { 1, 2 }, { 3, 4 }, { 5, 6 }, { 7, 8 } };
    // The same array with dimensions specified.
    int[,] array2Da = new int[4, 2] { { 1, 2 }, { 3, 4 }, { 5, 6 }, { 7, 8 } };
    // A similar array with string elements.
    string[,] array2Db = new string[3, 2] { { "one", "two" }, { "three", "four" },
                                            { "five", "six" } };
    
    // Three-dimensional array.
    int[, ,] array3D = new int[,,] { { { 1, 2, 3 }, { 4, 5, 6 } }, 
                                     { { 7, 8, 9 }, { 10, 11, 12 } } };
    // The same array with dimensions specified.
    int[, ,] array3Da = new int[2, 2, 3] { { { 1, 2, 3 }, { 4, 5, 6 } }, 
                                           { { 7, 8, 9 }, { 10, 11, 12 } } };
    
    // Accessing array elements.
    System.Console.WriteLine(array2D[0, 0]);
    System.Console.WriteLine(array2D[0, 1]);
    System.Console.WriteLine(array2D[1, 0]);
    System.Console.WriteLine(array2D[1, 1]);
    System.Console.WriteLine(array2D[3, 0]);
    System.Console.WriteLine(array2Db[1, 0]);
    System.Console.WriteLine(array3Da[1, 0, 1]);
    System.Console.WriteLine(array3D[1, 1, 2]);
    
    // Output:
    // 1
    // 2
    // 3
    // 4
    // 7
    // three
    // 8
    // 12
    
    
    
    Rank belirtmeden diziyi başlatmak.
    int[,] array4 = { { 1, 2 }, { 3, 4 }, { 5, 6 }, { 7, 8 } };
    
    
    
    Başlatma olmadan bir dizi değişkeni bildirmek istiyorsanız kullanmalısınız new bir dizi değişkenine atamak için işleci. Kullanımını new aşağıdaki örnekte gösterilmiştir.
    int[,] array5;
    array5 = new int[,] { { 1, 2 }, { 3, 4 }, { 5, 6 }, { 7, 8 } };   // OK
    //array5 = {{1,2}, {3,4}, {5,6}, {7,8}};   // Error
    
    
    
    Aşağıdaki örnek, belirli bir dizi öğesine bir değer atar.
    array5[2, 1] = 25;
    
    
    
    Benzer şekilde, aşağıdaki örnek belirli dizi öğesinin değerini alır ve değişkenine atar elementValue.
    int elementValue = array5[2, 1];
    
    
    
    Aşağıdaki kod örneği, dizi öğelerinin (haricinde, pürüzlü Diziler) varsayılan değerlere sıfırlar.
    int[,] array6 = new int[10, 10];
    

    3-Düzensiz(Basit) Diziler
    Basit bir dizi, dizi öğelerinin olan bir dizidir. Pürüzlü bir dizinin öğeleri, farklı boyutları ve boyutlarda olabilir. Basit dizi bazen "oluşan bir dizi." olarak adlandırılır Aşağıdaki örnekler nasıl bildirmek, başlatmak ve erişim diziler pürüzlü.
    Her biri tek boyutlu dizisi olan üç öğe bulunan bir tek boyutlu dizi bildirimi aşağıda verilmiştir:
    int[][] jaggedArray = new int[3][];
    
    
    
    Kullanabilmeniz için önce jaggedArray, öğelerini başlatılmalıdır. Öðesini aþaðýdaki gibi baþlatabilirsiniz:
    jaggedArray[0] = new int[5];
    jaggedArray[1] = new int[4];
    jaggedArray[2] = new int[2];
    
    
    
    Her öğenin tek boyutlu dizisi olur. İlk öğe 5 dizisi, ikincisinin 4 dizisi ve üçüncü 2 sayı dizisi.
    Dizi öğelerini değerleriyle doldurmak için Başlatıcı kullanmak da mümkündür, durumda, dizi boyutu gerek yoktur. Örne?in:
    jaggedArray[0] = new int[] { 1, 3, 5, 7, 9 };
    jaggedArray[1] = new int[] { 0, 2, 4, 6 };
    jaggedArray[2] = new int[] { 11, 22 };
    
    
    
    De dizi üzerine bildirimi aþaðýdaki gibi baþlatabilirsiniz:
        int[][] jaggedArray2 = new int[][] 
    {
        new int[] {1,3,5,7,9},
        new int[] {0,2,4,6},
        new int[] {11,22}
    };
    
    
    
    Aşağıdaki steno formunu kullanabilirsiniz. Dikkat edin, atlayamaz new öğeleri başlatma operatörden öğeler için hiçbir varsayılan başlatma olduğundan:
        int[][] jaggedArray3 = 
    {
        new int[] {1,3,5,7,9},
        new int[] {0,2,4,6},
        new int[] {11,22}
    };
    
    
    
    Basit bir dizi oluşan bir dizi ve bu nedenle öğelerini başvuru türleridir ve için başlatılan null.
    Bu örnekleri gibi tek tek dizi öğelerinin erişebilirsiniz:
    // Assign 77 to the second element ([1]) of the first array ([0]):
    jaggedArray3[0][1] = 77;
    
    // Assign 88 to the second element ([1]) of the third array ([2]):
    jaggedArray3[2][1] = 88;
    
    
    
    Pürüzlü ve çok boyutlu diziler karıştırmak mümkündür. Aşağıdaki bildirim ve farklı boyutlarda üç boyutlu dizi öğelerini içeren basit tek boyutlu dizi başlatma yer alıyor. İki boyutlu diziler hakkında daha fazla bilgi için bkz: Çok Boyutlu Diziler (C# Programlama Kılavuzu).
    int[][,] jaggedArray4 = new int[3][,] 
    {
        new int[,] { {1,3}, {5,7} },
        new int[,] { {0,2}, {4,6}, {8,10} },
        new int[,] { {11,22}, {99,88}, {0,9} } 
    };
    
    
    
    Öğenin değerini görüntüler Bu örnekte gösterildiği gibi tek tek öğeleri erişim [1,0] ilk dizinin (değeri 5):
    System.Console.Write("{0}", jaggedArray4[0][1, 0]);
    
    
    
    Yöntem Length diziler pürüzlü dizisi içinde yer alan sayısını verir. Önceki dizi, bu satırı olarak bildirilen varsayarak örneğin:
    System.Console.WriteLine(jaggedArray4.Length);
    
    
    
    3 değerini döndürür.

    Örnek:
    Bu örnek, dizi öğelerinin kendilerini olan bir dizi oluşturur. Dizi öğelerinin her biri farklı bir boyutu vardır.
    class ArrayTest
    {
        static void Main()
        {
            // Declare the array of two elements:
            int[][] arr = new int[2][];
    
            // Initialize the elements:
            arr[0] = new int[5] { 1, 3, 5, 7, 9 };
            arr[1] = new int[4] { 2, 4, 6, 8 };
    
            // Display the array elements:
            for (int i = 0; i < arr.Length; i++)
            {
                System.Console.Write("Element({0}): ", i);
    
                for (int j = 0; j < arr[i].Length; j++)
                {
                    System.Console.Write("{0}{1}", arr[i][j], j == (arr[i].Length - 1) ? "" : " ");
                }
                System.Console.WriteLine();            
            }
            // Keep the console window open in debug mode.
            System.Console.WriteLine("Press any key to exit.");
            System.Console.ReadKey();
        }
    }
    /* Output:
        Element(0): 1 3 5 7 9
        Element(1): 2 4 6 8
    */
    
    


Hiç yorum yok:

Yorum Gönder