Source: https://pixabay.com/vectors/pencil-marks-notes-agenda-list-308509/
Source: https://pixabay.com/photos/metal-grunge-cover-plate-square-1749027/
Структура данных (data structure) - программная единица, позволяющая хранить и обрабатывать множество однотипных и/или логически связанных данных в вычислительной технике.
Массив (array) - структура данных, состоящая из набора элементов, каждый из которых идентифицируется индексом или набором индексов.
Пример простого массива из 7-ми элементов
Одномерный массив
Двумерный массив
Трёхмерный массив
Четырёхмерный массив
n-мерный массив
0 - (zero-based, индексация с 0) - адресация первого элемента по индексу 0.
1 - (one-based, индексация с 1) - адресация первого элемента по индексу 1.
n - (n-based, индексация с n) - адресация первого элемента по индексу с n.
Индексация с 0 является наиболее распространённой в C-подобных языках, коими являются C#, Java, JavaScript (ouch), поэтому привыкаем к этому подходу.
Source: https://pixabay.com/photos/zero-electronic-digit-black-one-1207806/
Массивы выступают в роли фундаментальной и одной из наиболее часто используемых явно или неявно (как основа других) структур данных.
Как правило, все элементы массива имеют один и тот же тип.
Как правило, массив имеет фиксированную длинну по всем размерностям.
A - массив
i - индекс
v - значение
Массивы в dotnet являются одной из основных структур данных, на основании которых строятся другие более сложные структуры.
Объявление массива похоже на объявление переменной:
type[] arrayName;int[] numbers;На этапе создания массива надо определить его размерность и кол-во эл-ов в каждом измерении.
int[] numbers = new int[5];int[,] matrix = new int[7, 5];int[] a = new int[7];Одномерный массив
int[,] a = new int[7, 3];Многомерный массив
(на примере 2х изм)
int[][] a = new int[7][];
a[0] = new int[3];
a[1] = new int[5];
...Зубчатый массив
(массив массивов)
Single-Dimensional Arrays - наиболее распространённый вид массивов, с которым вы столкнётесь.
Варианты инициализации
double[] coefficients = new double[345];double[] coefficients = new double[] { 9.2, 4.6, -8.5 };double[] coefficients = { 9.2, 4.6, -8.5 };Обращение к элементу
double[] coefficients = new double[4];
coefficients[0] = 3.5;
coefficients[1] = 4.5;
double c1 = coefficients[2];Multi-dimensional arrays - встречаются реже. Чаще всего столкнётесь с двумерными массивами - матрицами.
Варианты инициализации
long[,] ids = new long[5, 7];long[,] ids = new long[,] { {2, 5}, {8, 1}, {-9, 6} };long[,] ids = { {2, 5}, {8, 1}, {-9, 6} };Обращение к элементу
long[,] ids = new long[5, 7];
ids[0, 0] = 5;
ids[0, 1] = 6;
long idOfInterest = ids[3, 3];"Jagged" arrays - встречаются ещё реже.
Варианты инициализации
int[][] matrix = new [3][];
matrix[0] = new int[3];
matrix[1] = new int[4];
matrix[2] = new int[5];int[][] matrix = new int[][] {
new int[] {4, 5, 6},
new int[] {7, 8, 9, 10},
new int[] {11, 12, 13, 14, 15}
};Обращение к элементу
int[][] matrix = new [3][];
matrix[0] = new int[3];
matrix[1] = new int[4];
matrix[2] = new int[5];
matrix[0][2] = 16;Source: https://pixabay.com/photos/frog-rest-meditation-summer-yoga-3895825/
Source: https://pixabay.com/photos/typewriter-vintage-write-letters-1170657/
Строка (string) - это фундаментальный тип данных, хранящий внутри себя текст.
Один из наиболее часто используемых типов данных в dotnet, java, js.
Внутри представляет собой последовательность элементов типа char.
string text = "something wicked";Символ (char) - тип данных, представляющий собой Unicode символ, занимающий 2 байта (UTF-16).
char c = 'a';
char e = '\n';string msg = "me";string msg = @"C:\something\really\wicked.jpg";
vs
string msg = "C:\\someting\\really\\wicked.jpg";int token = 10;
string msg = $"you've reached 9 points out of {token}";string msg = "hello";
char c = msg[2]; // 'l'string msg = "hello";
msg = msg + " world"; // "hello world"public enum StringComparison {
CurrentCulture = 0,
CurrentCultureIgnoreCase = 1,
InvariantCulture = 2,
InvariantCultureIgnoreCase = 3,
Ordinal = 4,
OrdinalIgnoreCase = 5
}Source: https://pixabay.com/photos/frog-rest-meditation-summer-yoga-3895825/
Source: https://pixabay.com/photos/writing-writer-notes-pen-notebook-923882/
Source: https://pixabay.com/photos/lamps-thank-you-door-workshop-1030901/