C# Масиви

2075 / Масиви

 

int[] arr = { 1, 3, 5, 7, 9 };
int[] arr = new int[] { 1, 3, 5, 7, 9 };
int[] arr = new int[5] { 1, 3, 5, 7, 9 };

 

int[] arr = new int[3];
arr[0] = 4;
arr[1] = 6;
arr[2] = 8;

Двовимірні

int[,] mas = new int[3, 3];

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

mas[1, 2] = 6;

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

Тривимірні

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

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

mas.Rank; //3
mas.Length; //24
mas.GetLength(0); //2
mas.GetLength(1); //3
mas.GetLength(2); //4

Переписати масив

int[] a = { 1, 2, 3 };
int[] b = { 5, 5, 5, 5, 5 };
b = a; // b та a = {1, 2, 3}

Вивести циклом
for (int i = 0; i < arr.GetLength(0); i++)
{
  for (int j = 0; j < arr.GetLength(1); j++)
  {
    Console.Write(arr[i, j] + " ");
  }
  Console.WriteLine();
}

Об'єднати // лише одновимірні масиви
string[] arr = {"A", "B", "C", "D"};
string s1 = string.Join(", ", arr); // Environment.NewLine

Сортування
Array.Sort(arr); // сортує цифри по зростанню, а рядки по алфавіту

Змінити порядок ззаду наперед
Array.Reverse(arr);

Онулити перші три елементи
Array.Clear(arr, 0, 3);

Середнє значення
Array.Average(arr);

Прибрати дублікати
int[] q = arr.Distinct().ToArray();

Об'єднати 2 масиви
int[] mas3 = mas1.Concat(mas2).ToArray();

Об'єднати 2 масиви прибравши дублікати
int[] mas3 = mas1.Union(mas2).ToArray();

Пошук елемента у масиві
int[] arr = { 1, 2, 3, 4, 5};
int a = Array.IndexOf(arr, 5); // 4
int b = Array.IndexOf(arr, 6); // -1
int c = Array.LastIndexOf(arr, 5); // 4

Пошук елемента у відсортованому масиві
int[] arr = { 1, 2, 3, 4, 5 };
int b1 = Array.BinarySearch(arr, 5); // 4
int b2 = Array.BinarySearch(arr, 10); // -6 тобто, від'ємна кількість елементів + 1

Змінити розмір масиву
Array.Resize(ref arr, arr.Length + 5);

Кількість входжень
int[] arr = { 0, 3, 3, 6 };
Console.WriteLine(arr.Count(n => n == 3)); // 2

using System.Linq;
arr.Max()
arr.Min()
arr.Sum()

Передати в метод по посиланню
Show(arr);
void Show(int[] arr) { }
void Show(int[,] arr) { }
void Show(int[,,] arr) { }
void Show(int[,,,] arr) { }
void Show(int[,,,,] arr) { }

Тип масиву
Console.WriteLine(arr); // System.Int32[]

 

Масив масивів (зубчастий масив)
int[][] nums = new int[3][];

nums[0] = new int[2] { 1, 2 };
nums[1] = new int[3] { 1, 2, 3 };
nums[2] = new int[5] { 1, 2, 3, 4, 5 };


4D масиви
static void Show(string[,,,] arr)
{
    for (int i = 0; i < arr.GetLength(0); i++)
    {
        for (int j = 0; j < arr.GetLength(1); j++)
        {
            for (int k = 0; k < arr.GetLength(2); k++)
            {
                for (int l = 0; l < arr.GetLength(3); l++)
                {
                    Console.Write(arr[i, j, k, l] + " ");
                }
            }
        }
    }
}

string[,,,] week = new string[2, 2, 2, 2]{
    {
        {
            { "1", "1" }, { "2", "2" }
        },
        {
            { "3", "3" }, { "4", "4" }
        }
    },
    {
        {
            { "5", "5" }, { "6", "6" }
        },
        {
            { "7", "7" }, { "8", "8" }
        }
    } 
};


Show(week);
1 1 2 2 3 3 4 4 5 5 6 6 7 7 8 8