Пошук по сайту  

   

Пошук роботи!  

Вакансії C# developer

Работа в Украине

   

Реклама  

Скачуйте відеуроки для створення сайту за допомогою SMS Joomla 

реклама

 

 

   

Ми в Facebook  

   

Статистика  

Користувачі
3
Статті
207
Перегляди статей
2024949
   

Реклама в мережі  

   

Ми знаходимось тут  

   

Посібник Delphi  

ДОСТУПНИЙ ВИКЛАД,

ЦІКАВІ ПРИКЛАДИ, ВИХІДНІ КОДИ.

ЦІНА ДИСКА З МАТЕРІАЛАМИ - 500 грн. 

Якщо ваша карта обслуговується ПриватБанком тоді переведіть потрібну суму через Приват24 на карту    5168 7573 0556 9925 або натисніть на посилання "Перейти до оплати", щоб здійснити миттєвий платіж без комісії. Перейти до оплати!

 Звертайтесь за адресою еmail:kuzbyt@ukr.net

 
   

Посібник по C#  

 Вивчаємо сучасну мову  програмування C# 7.0

ПРОГРАМУЄМО в VISUAL STUDIO 2017

ЦІНА ДИСКА З МАТЕРІАЛАМИ - 1000 грн. 

Якщо ваша карта обслуговується ПриватБанком тоді переведіть потрібну суму через Приват24 на карту    5168 7573 0556 9925 або натисніть на посилання "Перейти до оплати", щоб здійснити миттєвий платіж без комісії. Перейти до оплати!

 Звертайтесь за адресою еmail:kuzbyt@ukr.net

Тут Подяка на підтримку сайту
 
   

Випадкове фото  

   

Наш відеоканал  

   

Відвідування сайту  

Яндекс.Метрика

 

   

Відеокурс по С++  

   

Рекомендуємо:  

   

Масиви в Сі-шарп. Клас Список
Масив - це набір однотипних даних, які містяться у пам'яті послідовно один за одним. Доступ до елементів масиву здійснюється за індексом (номером) елемента. Масив може містити елементи будь-якого типу даних, можна навіть створювати масив масивів (ступінчастий масив). Кількість елементів у масиві називається розміром масиву. Масиви відносяться до посилальних типів даних.
Масиви в Сі-шарп можуть бути одновимірними і багатовимірними.

Одномірні масиви
Одновимірний масив по-іншому ще називається вектором, і для доступу до його елементів використовується тільки один індекс. Виглядає вектор приблизно так:

 
У Сі-шарп оголошення масиву має таку структуру:
тип[] ім’я_масиву = new тип[розмір масиву];

Приклад:
int[] array = new int[5]; // створюємо масив цілих чисел

string[] seasons = new string[4] {"зима","весна","літо","осінь"}; //оголошення масиву рядків і його ініціалізація значеннями// Оголошення масиву рядків і його ініціалізація значеннями

Якщо відбувається ініціалізація, оператор new можна опускати:
String [] сезони = {"зима", "весна", "літо", "осінь"}; // Коректно

Доступ до елементів здійснюється за індексом. Слід пам'ятати, що індексація починається з нуля - перший елемент масиву має індекс 0, а останній N-1, де N - розмір масиву.
static void Main(string[] args)
{
   int[] numbers = new int[5];
   numbers[0] = 5;
   numbers[1] = 2;
   numbers[4] = 3;
   numbers[5] = 2; // помилка, індекс поза рамками масиву
}
В якості масиву можна уявити, наприклад, список студентів у групі (імена), показники температури повітря за останні кілька днів і так далі.

Багатовимірні масиви
Одним з випадків багатовимірного масиву служить двовимірний масив (матриця). У матриці для доступу до елементів необхідно використовувати два індекси.


Кількістю індексів, які використовуються для доступу до елементів масиву називається розмірність масиву.
int[,] numbers1 = new int[2, 2]; // оголошення двовимірного масиву
int[,,] numbers2 = new int[2, 2 ,3]; // оголошення трьохвимірного масиву
int[,] numbers3 = new int[3, 2] { {6, 0}, {5, 7}, {8, 9} }; // ініціалізація двовимірного масиву
Елементу масиву numbers1 з координатами 1,1 присвоїмо значення 8:
numbers1 [1, 1] = 8;

Багатовимірні масиви використовуються набагато рідше одновимірних.
Наведу трохи «бердовий» приклад даних, які можна було б представити як двовимірний масив:
Є матриця 7 * 4. Рядки, яких сім, будуть відповідати днях тижня, а 4 стовпці - часу дня (00:00, 6:00, 12:00, 18:00). В якості даних буде температура повітря.
Значення температури з координатами 2,3 буде відповідати температурі в середу в 18:00. На практиці, звичайно, такі дані представлялися б в іншому вигляді, але для прикладу підійде.

Ступінчасті (зубчасті) масиви в Сі-шарп
Ступінчастий (зубчасті) масив - це масив масивів. У ньому довжина кожного масиву може бути різною. Приблизно це виглядає так:



Приклад оголошення ступеневого масиву:
static void Main(string[] args)
{
   int[][] array = new int[3][]; // оголошуємо масив, який містить 3 масиви
   array [0] = new int[3]; //створення внутрішнього масиву
   array [1] = new int[2];
   array [2] = new int[5];
}

Доступ до елементів здійснюється за тим же принципом, як і з багатовимірними масивам, тільки тут вже беруть участь дві пари квадратних дужок (продовження прикладу вище):
array [0][1] = 5;
array [1][1] = 8;
array [1][2] = 5; // помилка, індекс «2» за межею  масиву

Властивість Length

Всі масиви є об'єктами і у них є деякі властивості.Найкориснішим для нас буде властивість Length, яке повертає кількість елементів в масиві (у всіх розмірностях)

static void Main(string[] args)
{
   int[] numbers = new int[5];
   int size = numbers.Length; // size = 5
}

Клас Список

Клас Список служить для роботи зі списками, про що і говорить його назва. Це такий «наворочений» масив. Головна відмінність від простого масиву в тому, що він динамічний - ви можете вставляти і видаляти елементи в будь-який час, в той час як в простому масиві розмір вказується при створенні і зробити його більше або менше не можна.
static void Main(string[] args)
{
   List<string> teams = new List<string>(); // створення списку
   teams.Add("Barcelona"); // додавання елемента
   teams.Add("Chelsea");
   teams.Add("Arsenal");
   List<string> teams2 = new List<string>() {"Dynamo", "CSKA" }; // ініціалізація
}
Додавання елементів

Метод

Опис

   

Add([елемент])

додає елемент в кінець списку

   

AddRange([список елементів])

додає в кінець списку елементи зазначеного списку

   

Insert([індекс],[елемент])

вставляє елемент на позицію відповідну індексом, всі елементи «правіше» будуть зрушені на одну позицію

   

InsertRange([індекс], [список елементів])

те ж саме, тільки вставляється безліч елементів


Видалення елементів

Метод

Опиc

   

Remove([елемент])

видаляє перше входження зазначеного елемента зі списку

   

RemoveRange(індекс], [кількість])

видаляє вказану кількість елементів, починаючи з вказаною позиції

   

RemoveAt([індекс])

видаляє елемент, який знаходиться на вказаній позиції

   

Clear()

видаляє всі елементи списку


Властивість Count відповідає властивості звичайного масиву - довжина - кількість елементів.
static void Main(string[] args)
{
   List<string> teams = new List<string>() { "Inter", "Milan", "Bayern", "Juventus"};
   teams.Insert(2,"Barcelona"); // вставляємо в список елемент "Barcelona" на позицію 2
   teams.Remove("Milan"); // вилучаємо перше входження елемента "Milan" із списку
   List<string> newTeams = new List<string>() { "Liverpool", "Roma", "Borussia", "Valencia" };
   teams.AddRange(newTeams); // додаємо в кінець списку елементи списку newTeams
}

Варто пам'ятати, що прості масиви працюють швидше, ніж списки списку. Якщо у вашій програмі не особливо важлива продуктивність і ви не працюєте з великими кількостями даних, то зручніше використовувати список, в іншому випадку потрібно використовувати прості масиви.

Домашнє завдання

Працювати з масивами без використання циклів в більшості випадків немає сенсу. Про циклах ми поговоримо в наступному уроці. А так, поки можете створити різні типи масивів, записати щось, вивести на екран деякі елементи масиву, спробуйте отримати доступ до елемента поза рамками масиву. Створіть список, спробуйте додати елемент в кінець списку, вставити елемент за індексом і так далі.

PS. Буду дуже вдячний, якщо ви поділитись з друзями цією статею за допомогою кнопок соціальних мереж в кінці поста.

   

Поділіться з друзями!

Соціальні мережі

   

Сайт для перевірки своїх знань з програмування на сайті:http://www.quizful.net/test

Онлайн тести  для програмістів: https://proghub.ru/


 Розробка сайтів, інтернет-магазинів під ключ. Створення програмного забезпечення для обліку в магазинах,

гуртовнях, ведення власного бізнесу та інших. Написання дипломних та курсових робіт з програмування, баз даних.

 

Звертайтесь за адресою email:kuzbyt@ukr.net

 

 

© (C) Sambir, I.Kuzbyt