Курсовая работа (т): Реализация интерфейса IComparer

Внимание! Если размещение файла нарушает Ваши авторские права, то обязательно сообщите нам

Рисунок А.5 - Пример использования класса SortedSet<T>

Листинг 7 - Пример применения параллельных коллекций

System;System.Collections.Concurrent;System.Threading;System.Threading.Tasks;

ConsoleApplication1

{Program

{BlockingCollection<int> bc;

void producer()

{(int i = 0; i < 100; i++)

{

.Add(i * i);.WriteLine("Производится число " + i * i);

}.CompleteAdding();

}

void consumer()

{i;(!bc.IsCompleted)

{(bc.TryTake(out i)).WriteLine("Потребляется число: " + i);

}

}

static void Main()

{= new BlockingCollection<int>(4);Pr = new Task(producer);Cn = new Task(consumer);.Start();.Start();

{.WaitAll(Cn, Pr);

}(Exception ex)

{.WriteLine(ex);

}

{.Dispose();.Dispose();.Dispose();

}

.ReadLine();

}

}

}

Рисунок А.6 - Применения параллельных коллекций

Листинг 8 - Пример использования перечислителей

System;System.Collections.Generic;ConsoleApplication1

{Program

{void Main()

{<int> arr = new List<int>();ran = new Random();(int i = 0; i < 10; i++)

arr.Add(ran.Next(1, 20));

// Используем перечислитель

IEnumerator<int> etr = arr.GetEnumerator();(etr.MoveNext()).Write(etr.Current + "\t");

Console.WriteLine("\n Повторный вызов перечислителя: \n");

// Сбросим значение и вновь исользуем перечислитель

// для доступа к коллекции.Reset();

while (etr.MoveNext()).Write(etr.Current + "\t");

Console.ReadLine();

}

}

}

Результат работы программы с использованием перечислителей представлен на рисунке А.7

Рисунок А.7 - Использование перечислителей

Листинг 9 - Пример применения интерфейсов IEnumerator и IEnumerable

System;System.Collections;ConsoleApplication1

{MyInt : IEnumerable, IEnumerator

{[] ints = { 12, 13, 1, 4 };index = -1;

// Реализуем интерейс IEnumerableIEnumerator GetEnumerator()

{this;

}

// Реализуем интерфейс IEnumeratorbool MoveNext()

{(index == ints.Length - 1)

{();false;

}++;true;

}void Reset()

{= -1;

}object Current

{

{ints[index];

}

}

}Program

{void Main()

{mi = new MyInt();(int i in mi).Write(i+"\t");.ReadLine();

}

}

}

Результат работы программы с использованием интерфейсов IEnumerator и Ienumerable представлен на рисунке А.8

Рисунок А.8 - Использование интерфейсов IEnumerator и Ienumerable

Листинг 10 - Пример использования именованного итератора

Book

{Book(string name)

{.Name=name;

}string Name { get; set; }

}Library : IEnumerable

{Book[] books;

Library()

{= new Book[] { new Book("Отцы и дети"), new Book("Война и мир"),Book("Евгений Онегин") };

}int Length

{{ return books.Length; }

}Book this[int index]

{

{books[index];

}

{

books[index] = value;

}

}

public IEnumerable GetBooks(int max)

{(int i = 0; i < max; i++)

{(i == books.Length)

{break;

}

{return books[i];

}

}

}

}

Источник: https://www.bibliofond.ru/detail.aspx?id=784959