Yurijnd.com
Четверг, 06.02.2025, 23:39
Меню сайта

Вход на сайт

Поиск

Друзья сайта
  • Официальный блог
  • Сообщество uCoz
  • FAQ по системе
  • Инструкции для uCoz

  • Статистика

    Онлайн всего: 2
    Гостей: 2
    Пользователей: 0

    Многомерные массивы (Руководство по программированию на C#)

    Visual Studio 2013
     

    Массивы могут иметь несколько измерений. Например, следующее объявление создает двумерный массив из четырех строк и двух столбцов.

     
    int[,] array = new int[4, 2];
    

    Следующее объявление создает трехмерный массив с количеством элементов 4, 2 и 3.

     
    int[, ,] array1 = new int[4, 2, 3];
    

    Инициализация массива

     

    Массив можно инициализировать при объявлении, как показано в следующем примере.

     
    // 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]);
    
    // Getting the total count of elements or the length of a given dimension. 
    var allLength = array3D.Length;
    var total = 1;
    for (int i = 0; i < array3D.Rank; i++) {
     total *= array3D.GetLength(i);
    }
    System.Console.WriteLine("{0} equals {1}", allLength, total);
    
    // Output: 
    // 1 
    // 2 
    // 3 
    // 4 
    // 7 
    // three 
    // 8 
    // 12 
    // 12 equals 12
    

    Можно также инициализировать массив, не указывая его размерность.

     
    int[,] array4 = { { 1, 2 }, { 3, 4 }, { 5, 6 }, { 7, 8 } };
    

    Если нужно создать переменную массива без инициализации, то необходимо использовать оператор new, чтобы присвоить массив переменной. В следующем примере показано использование new.

     
    int[,] array5;
    array5 = new int[,] { { 1, 2 }, { 3, 4 }, { 5, 6 }, { 7, 8 } }; // OK 
    //array5 = {{1,2}, {3,4}, {5,6}, {7,8}}; // Error
    

    Следующий пример присваивает значение конкретному элементу массива.

     
    array5[2, 1] = 25;
    

    Аналогичным образом, в следующем примере получено значение конкретного элемента массива и оно назначено переменнойelementValue.

     
    int elementValue = array5[2, 1];
    

    В следующем примере кода элементы массивов инициализируются значениями по умолчанию (за исключением массивов массивов).

     
    int[,] array6 = new int[10, 10];
    Copyright MyCorp © 2025
    Сделать бесплатный сайт с uCoz