Разделы презентаций


Коллекции

Содержание

КоллекцииКоллекция в языке C# — это объединение произвольного количества объектов, возможно, объектов разного типа.Коллекция — это динамическая структура данных. Память под коллекцию не фиксируется, данные могут добавляться или удаляться по мере

Слайды и текст этой презентации

Слайд 1Коллекции

Коллекции

Слайд 2Коллекции
Коллекция в языке C# — это объединение произвольного количества объектов,

возможно, объектов разного типа.
Коллекция — это динамическая структура данных. Память

под коллекцию не фиксируется, данные могут добавляться или удаляться по мере необходимости. Кроме того, для многих видов коллекций возможно включение в коллекцию данных разного типа.
Коллекция — это более гибкая организация данных, чем обычный массив. Но работа с массивом всегда ведётся быстрее, чем с коллекцией.
Для работы с коллекциями используется область имён System.Collections. Наиболее популярными видами коллекций являются:
КоллекцииКоллекция в языке C# — это объединение произвольного количества объектов, возможно, объектов разного типа.Коллекция — это динамическая

Слайд 3Наиболее часто используемые коллекций .NET
List (список)
Dictionary (словарь)
ArrayList (список с

разнотипными элементами)
Hashtable (хэш-таблица)
Stack (стэк)
Queue (очередь)

Наиболее часто используемые коллекций .NET List (список)Dictionary (словарь)ArrayList (список с разнотипными элементами)Hashtable (хэш-таблица)Stack (стэк)Queue (очередь)

Слайд 4Коллекции
List (список)
Список позволяет связанно хранить однотипные элементы, динамически выделяя память

для последующих элементов. Это значит, что вам не нужно задавать

размер списка при его инициализации в отличии от массивов. Доступ к элементу списка возможен по индексу, но обычно элементы списка обрабатываются последовательно.
КоллекцииList (список)Список позволяет связанно хранить однотипные элементы, динамически выделяя память для последующих элементов. Это значит, что вам

Слайд 5Коллекции
Dictionary (словарь)
Словарь — это подходящая коллекция для хранения и последующего

поиска однотипных элементов. В словаре элементы хранятся в виде пары

«ключ-значение». Это значит, что вы можете сохранить значение, и в дальнейшем используя ключ быстро получить значение из словаря обратно. Тип ключа задается пользователем и может быть любым: числом, строкой или просто объектом.
КоллекцииDictionary (словарь)Словарь — это подходящая коллекция для хранения и последующего поиска однотипных элементов. В словаре элементы хранятся

Слайд 6Коллекции
ArrayList (список с разнотипными элементами)
Этот вид списка, в отличие от

List, позволяет хранить разнотипные элементы. Это означает, что в одном

и том же списке могут одновременно храниться  как числа, структуры, так и строки, объекты и null значения. Что делает его значительно более медленным при поиске, чтении и записи элементов, чем его более строго типизированный аналог — List.
КоллекцииArrayList (список с разнотипными элементами)Этот вид списка, в отличие от List, позволяет хранить разнотипные элементы. Это означает,

Слайд 7Коллекции
Hashtable (хэш-таблица)
По принципу работы хэш-таблица схожа с Dictionary, за тем

исключением, что позволяет одновременно использовать разнотипные ключи и хранить разнотипные

элементы. Например для первого элемента хэш-таблицы можно использовать ключ в виде числового значения, а для второго, все той же таблицы, — в виде строки.
КоллекцииHashtable (хэш-таблица)По принципу работы хэш-таблица схожа с Dictionary, за тем исключением, что позволяет одновременно использовать разнотипные ключи

Слайд 8Коллекции
Stack (стэк)
Стэк — это коллекция для организации хранения элементов по

модели LIFO (last-in-first-out), что означает «последний пришел, первый вышел». Коллекция

типа стэк незаменима для множества алгоритмов, среди наиболее известных — это алгоритм разбора (парсинга) xml документа.
КоллекцииStack (стэк)Стэк — это коллекция для организации хранения элементов по модели LIFO (last-in-first-out), что означает «последний пришел,

Слайд 9Коллекции
Queue (очередь)
Очередь реализует другую модель добавления и удаления элементов —

FIFO (first-in-first-out), что означает «первый пришел, первый вышел». Но в

отличие от стэка очередь не так популярна, так как ту же функциональность может обеспечить коллекция List c лучшей производительностью. Очередь обычно используется для изящности кода при небольшой размере коллекции.
КоллекцииQueue (очередь)Очередь реализует другую модель добавления и удаления элементов — FIFO (first-in-first-out), что означает «первый пришел, первый

Слайд 10Коллекции
Коллекции подразделяются на универсальные и неуниверсальные. Универсальные коллекции могут быть

типизированы и содержать объекты определенного типа. Это позволяет выигрывать в

производительности, особенно, если коллекции хранят типы значений (int, bool, double и т.п.). В неуниверсальных коллекциях происходит упаковка хранимых объектов в тип Object, что требует их последующей распаковки при работе с ними.

КоллекцииКоллекции подразделяются на универсальные и неуниверсальные. Универсальные коллекции могут быть типизированы и содержать объекты определенного типа. Это

Слайд 11Коллекции
Наиболее распространенные и часто используемые коллекции обычно имеют как универсальную

версию, так и неуниверсальную версию.
Структура данных «список» в C# реализована

как универсальная коллекция List, кроме того, есть аналог ArrayList – неуниверсальная коллекция.
Коллекции	Наиболее распространенные и часто используемые коллекции обычно имеют как универсальную версию, так и неуниверсальную версию.Структура данных «список»

Слайд 12Коллекции
ArrayList arr = new ArrayList(); arr.Add(6); arr.Add("5"); Console.WriteLine(int.Parse(arr[0].ToString()));
List list = newList(); list.Add(123); list.Add("123"); //ошибка! коллекция

типизирована Console.WriteLine(list[0]);


Слайд 13Коллекции
Описание коллекции List:
List имя=new List ();
Пример:
List строки=new List ();
Описание

коллекции ArrayList:
ArrayList имя = new ArrayList();
Пример:
ArrayList объекты=new ArrayList();
Для получения

текущего количества элементов в коллекции можно использовать свойство Count.
КоллекцииОписание коллекции List:List имя=new List ();Пример:List строки=new List ();Описание коллекции ArrayList:ArrayList имя = new ArrayList();Пример: ArrayList объекты=new

Слайд 14Коллекции
Главной отличительной особенностью списка Dictionary от списка List заключается в

том, что элементы в Dictionary представлены парой Ключ/значение, где каждому

ключу соответствует значение.
В отличие от List, Dictionary получает доступ к элементу по его ключу.
КоллекцииГлавной отличительной особенностью списка Dictionary от списка List заключается в том, что элементы в Dictionary представлены парой

Слайд 15Коллекции
Описание коллекции
Dictionary имя=new Dictionary();
Пример:
Dictionary ведомость = new Dictionary

();
ведомость.Add(«Иванов»,4);
ведомость.Add(«Петров»,5);
ведомость.Add(«Сидоров»,4);


КоллекцииОписание коллекции Dictionary имя=new Dictionary();Пример:Dictionary ведомость = new Dictionary ();ведомость.Add(«Иванов»,4);ведомость.Add(«Петров»,5);ведомость.Add(«Сидоров»,4);

Слайд 16Методы Коллекций List List и ArrayList
Добавление элементов
Add(элемент_коллекции); - добавляет

элемент в коллекцию. В случае универсальной коллекции тип элемента должен

совпадать с типом коллекции (пример был приведен выше)
AddRange(Коллекция); - добавляет в текущую коллекцию совокупность элементов заданной коллекции. При этом, коллекция, указанная в качестве параметра, должна реализовывать интерфейс ICollection (стандартный интерфейс коллекции, замечание значимо при использовании пользовательской коллекции).
Insert(место, элемент); - вставляет в заданное место (индекс элемента) заданный элемент
InsertRange(место, коллекция); - вставляет в заданное место в коллекции заданную коллекцию
Методы Коллекций List List и ArrayList Добавление элементовAdd(элемент_коллекции); - добавляет элемент в коллекцию. В случае универсальной коллекции

Слайд 17Методы Коллекций List List и ArrayList
Удаление элементов

Remove(элемент); - удаляет элемент

из коллекции (первое вхождение элемента)
RemoveAt(позиция); - удаляет элемент на заданной

позиции
RemoveRange(позиция, количество); - удаляет заданное количество элементов, начиная с заданной позиции
Clear(); - удаляет все элементы из коллекции
Методы Коллекций List List и ArrayListУдаление элементовRemove(элемент); - удаляет элемент из коллекции (первое вхождение элемента)RemoveAt(позиция); - удаляет

Слайд 18Методы Коллекций List List и ArrayList
Поиск элементов

bool Contains(элемент); -

возвращает, содержится ли заданный элемент в коллекции
int IndexOf(элемент); - возвращает

позицию, на которой содержится в коллекции заданный элемент (первое вхождение)
int IndexOf(элемент, позиция); - возвращает позицию, на которой содержится заданный элемент (первое вхождение). Поиск осуществляется по коллекции, начиная с заданной и заканчивая концом коллекции)
Методы Коллекций List List и ArrayListПоиск элементов bool Contains(элемент); - возвращает, содержится ли заданный элемент в коллекцииint

Слайд 19Методы Коллекций List List и ArrayList
Поиск элементов

int IndexOf(элемент, стартовая_позиция,

финишная_позиция); - возвращает позицию, на которой содержится заданный элемент (первое

вхождение). Поиск осуществляется по коллекции, начиная с заданной стартовой позиции и заканчивая заданной финишной позицией.
int LastIndexOf(элемент); - возвращает позицию, на которой содержится в коллекции заданный элемент (последнее вхождение). Метод перегружен, его перегруженные версии копируют перегрузки метода IndexOf(), рассмотренного выше
int BinarySearch(элемент); - возвращает позицию, на которой находится заданный элемент в коллекции. По коллекции осуществляется бинарный (двоичный) поиск. Коллекция должная быть отсортирована. Метод содержит несколько перегрузок, можно также задавать компаратор (метод сравнения) для элементов.
Методы Коллекций List List и ArrayListПоиск элементов int IndexOf(элемент, стартовая_позиция, финишная_позиция); - возвращает позицию, на которой содержится

Слайд 20Методы Коллекций List List и ArrayList
Дополнительные методы для работы с

коллекциями

Sort(); - сортирует коллекцию, используя стандартный компаратор. Если тип элементов

коллекции является пользовательским, то компаратор (сравнение элементов) нужно реализовать в соответствующем классе этого типа.
string ToString(); - стандартный метод, переводящий коллекцию в строку
Reverse(); - переворачивает коллекцию, точнее, порядок элементов в коллекции. Первый элемент меняется с последним и т.д.
Reverse(стартовая_позиция, количество_элементов); - переворачивает в коллекции заданное количество элементов, начиная с заданного номера элемента

Методы Коллекций List List и ArrayListДополнительные методы для работы с коллекциямиSort(); - сортирует коллекцию, используя стандартный компаратор.

Слайд 21Методы Коллекций List List и ArrayList
Дополнительные методы для работы с

коллекциями


GetRange(стартовая_позиция, количество элементов); - возвращает коллекцию, элементами которой является заданное

количество элементов данной коллекции, начиная с заданной стартовой позиции
GetType(); - возвращает тип элементов коллекции
CopyTo(массив); - копирует элементы коллекции в заданный массив
CopyTo(массив, номер_позиции); - копирует элементы коллекции в заданный массив, начиная с заданной позиции в массиве
CopyTo(массив, номер_позиции, количество_элементов); - копирует заданное количество элементов коллекции в заданный массив, начиная с заданной позиции в массиве
Методы Коллекций List List и ArrayListДополнительные методы для работы с коллекциямиGetRange(стартовая_позиция, количество элементов); - возвращает коллекцию, элементами

Слайд 22Методы Коллекций List List и ArrayList
Перебор элементов списка
Перебрать все значения

списка можно с помощью операторов foreach:
var list = new List();
  list.Add("Я ");
  list.Add("люблю

");
  list.Add("C#");
  foreach (var item in list) // Перебираем элементы списка
// с помощью foreach.
            { Console.WriteLine(item);
            }
Локальным переменным вместо определенного типа может быть задан неявный "тип" var. Ключевое слово var сообщает компилятору необходимости определения типа переменной из выражения, находящегося с правой стороны оператора инициализации.

Методы Коллекций List List и ArrayListПеребор элементов спискаПеребрать все значения списка можно с помощью операторов foreach:var list =

Слайд 23Методы Коллекций List List и ArrayList
static void Main(string[] args)

{
string s;

StreamReader readfl;
List st = new List();
if (File.Exists(@"d:\строки.txt"))
readfl = new StreamReader(@"d:\строки.txt");
else
{
Console.WriteLine("Файл не найден");
Console.ReadKey();
return;
}
Методы Коллекций List List и ArrayListstatic void Main(string[] args)    {

Слайд 24Методы Коллекций List List и ArrayList
while (readfl.EndOfStream == false)

{ s = readfl.ReadLine();

st.Add(s);
}
foreach (var x in st)
Console.WriteLine(x);
Console.WriteLine();
st.Sort();
st.Remove("группа");
foreach (var x in st)
Console.WriteLine(x);
Console.ReadKey();
}

Методы Коллекций List List и ArrayListwhile (readfl.EndOfStream == false)      { s =

Слайд 25Методы Коллекций List List и ArrayList

Методы Коллекций List List и ArrayList

Слайд 26LINQ (Language Integrated Query) - это специальный язык запросов для

.NET Framework. Он позволяет выполнять запросы к объектам находящимся в

памяти.
Технология LINQ (Language Integrated Query) - это попытка компании Microsoft скрестить традиционное процедурное программирование и декларативное или функциональное программирование. Язык LINQ – это язык структурированных запросов, интегрированный в контекст привычных всем циклов, условных операторов и процедур.

Язык интегрированных запросов LINQ

LINQ (Language Integrated Query) - это специальный язык запросов для .NET Framework. Он позволяет выполнять запросы к

Слайд 27Язык интегрированных запросов LINQ
LINQ-запрос к коллекции (списку) данных

var НоваяКоллекция=from элемент

in Коллекция

where условие отбора

orderby параметр сортировки

select элемент;


Язык интегрированных запросов LINQLINQ-запрос к коллекции (списку) данныхvar НоваяКоллекция=from элемент in Коллекция

Слайд 28Язык интегрированных запросов LINQ
Пример:
var str=from x in st

where x.Length>5

orderby x
select x
Язык интегрированных запросов LINQПример:var str=from x in st       where x.Length>5

Слайд 29Язык интегрированных запросов LINQ
Структура:
struct person
{

public string fio;

public DateTime dat;
public char pol;
}
Коллекция:
List stud = new List();

Запрос:
var dat_sort = from x in stud
orderby x.dat descending
select x;
Язык интегрированных запросов LINQСтруктура:struct person    {      public string fio;

Слайд 30Пример:
struct person
{public string fio;
public DateTime dat;

public char pol;
public double rost;
public

int ves;
public bool ekat;
public int vozr() { double m;
DateTime d = DateTime.Now;
TimeSpan p = d - this.dat;
m = p.Days / 365.25;
return Convert.ToInt32(m);
} };

Пример: struct person {public string fio;  public DateTime dat;  public char pol;  public double

Слайд 31Пример
static void Main(string[] args)
{

string a;
person s;

StreamReader readfl;
StreamWriter writefl;
List stud = new List();
if (File.Exists(@"d:\структуры.txt"))
readfl = new StreamReader(@"d:\структуры.txt");
else
{ Console.WriteLine("Файл не найден");
Console.ReadKey();
return;
}


Пример static void Main(string[] args)    {  string a;

Слайд 32Пример
while (readfl.EndOfStream == false)

{
s.fio =

readfl.ReadLine();
s.pol = Convert.ToChar(readfl.ReadLine());
s.dat = Convert.ToDateTime(readfl.ReadLine());

s.rost = Convert.ToDouble(readfl.ReadLine());
s.ves = Convert.ToInt16(readfl.ReadLine());
a = readfl.ReadLine();
if (a == "Да") s.ekat = true; else s.ekat = false;
stud.Add(s);
}



Пример while (readfl.EndOfStream == false)      {

Слайд 33Пример
var dat_sort = from x in stud

orderby x.dat descending
select x;
foreach (var t in dat_sort)
Console.WriteLine(t.fio + "\t" + t.pol + "\t" + t.dat.ToString("dd.MM.yyyy") + "\t" + Convert.ToString(t.vozr()) + "\t" + Convert.ToString(t.ves));
Console.ReadKey();
}




Пример  var dat_sort = from x in stud

Обратная связь

Если не удалось найти и скачать доклад-презентацию, Вы можете заказать его на нашем сайте. Мы постараемся найти нужный Вам материал и отправим по электронной почте. Не стесняйтесь обращаться к нам, если у вас возникли вопросы или пожелания:

Email: Нажмите что бы посмотреть 

Что такое TheSlide.ru?

Это сайт презентации, докладов, проектов в PowerPoint. Здесь удобно  хранить и делиться своими презентациями с другими пользователями.


Для правообладателей

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