Герберт Шилдт - C# 4.0: полное руководство

Тут можно читать онлайн Герберт Шилдт - C# 4.0: полное руководство - бесплатно ознакомительный отрывок. Жанр: comp-programming, издательство ООО И.Д. Вильямс, год 2011. Здесь Вы можете читать ознакомительный отрывок из книги онлайн без регистрации и SMS на сайте лучшей интернет библиотеки ЛибКинг или прочесть краткое содержание (суть), предисловие и аннотацию. Так же сможете купить и скачать торрент в электронном формате fb2, найти и слушать аудиокнигу на русском языке или узнать сколько частей в серии и всего страниц в публикации. Читателям доступно смотреть обложку, картинки, описание и отзывы (комментарии) о произведении.
  • Название:
    C# 4.0: полное руководство
  • Автор:
  • Жанр:
  • Издательство:
    ООО И.Д. Вильямс
  • Год:
    2011
  • Город:
    Москва -- Киев
  • ISBN:
    978-5-8459-1684-6
  • Рейтинг:
    3.93/5. Голосов: 141
  • Избранное:
    Добавить в избранное
  • Отзывы:
  • Ваша оценка:
    • 80
    • 1
    • 2
    • 3
    • 4
    • 5

Герберт Шилдт - C# 4.0: полное руководство краткое содержание

C# 4.0: полное руководство - описание и краткое содержание, автор Герберт Шилдт, читайте бесплатно онлайн на сайте электронной библиотеки LibKing.Ru

В этом полном руководстве по C# 4.0 - языку программирования, разработанному специально для среды .NET, - детально рассмотрены все основные средства языка: типы данных, операторы, управляющие операторы, классы, интерфейсы, методы, делегаты, индексаторы, события, указатели, обобщения, коллекции, основные библиотеки классов, средства многопоточного программирования и директивы препроцессора. Подробно описаны новые возможности C#, в том числе PLINQ, библиотека TPL, динамический тип данных, а также именованные и необязательные аргументы. Это справочное пособие снабжено массой полезных советов авторитетного автора и сотнями примеров программ с комментариями, благодаря которым они становятся понятными любому читателю независимо от уровня его подготовки.


Книга рассчитана на широкий круг читателей, интересующихся программированием на C#.Введите сюда краткую аннотацию

C# 4.0: полное руководство - читать онлайн бесплатно ознакомительный отрывок

C# 4.0: полное руководство - читать книгу онлайн бесплатно (ознакомительный отрывок), автор Герберт Шилдт
Тёмная тема
Сбросить

Интервал:

Закладка:

Сделать

Помимо свойств, определенных в интерфейсах, которые реализуются в классе HashSet, в него введено дополнительное свойство Comparer, приведенное ниже.

public IEqualityComparer Comparer { get; }

Оно позволяет получать метод сравнения для вызывающего хеш-множества.

Ниже приведен конкретный пример применения класса HashSet.

// Продемонстрировать применение класса HashSet.

using System;

using System.Collections.Generic;

class HashSetDemo {

static void Show( string msg, HashSet set) {

Console.Write(msg);

foreach(char ch in set)

Console.Write(ch + " ");

Console.WriteLine();

}

static void Main() {

HashSet setA = new HashSet();

HashSet setB = new HashSet();

setA.Add('A');

setA.Add('В');

setA.Add('C');

setB.Add('C');

setB.Add('D');

setB.Add('Е');

Show("Исходное содержимое множества setA: ", setA);

Show("Исходное содержимое множества setB: ", setB);

setA.SymmetricExceptWith(setB);

Show("Содержимое множества setA после " +

"разноименности со множеством SetB: ", setA);

setA.UnionWith(setB);

Show("Содержимое множества setA после " +

"объединения со множеством SetB: ", setA);

setA.ExceptWith(setB);

Show("Содержимое множества setA после " +

"вычитания из множества setB: ", setA);

Console.WriteLine();

}

}

Ниже приведен результат выполнения программы из данного примера.

Исходное содержимое множества setA: A B C

Исходное содержимое множества setB: С D Е

Содержимое множества setA после разноименности со множеством SetB: А В D Е

Содержимое множества setA после объединения со множеством SetB: А В D Е С

Содержимое множества setA после вычитания из множества setB: А В

Класс SortedSet

Класс SortedSetпредставляет собой новую разновидность коллекции, введенную в версию 4.0 среды .NET Framework. В нем поддерживается коллекция, реализующая отсортированное множество. В классе SortedSetреализуются интерфейсы ISet, ICollection, ICollection, IEnumerable, IEnumerable, ISerializable, а также IDeserializationCallback. В коллекции типа SortedSetреализуется множество, все элементы которого являются уникальными. Иными словами, дубликаты в таком множестве не допускаются. В классе SortedSetопределяется полный набор операций с множеством, определенных в интерфейсе ISet, включая пересечение, объединение и разноименность. Благодаря тому что все элементы коллекции типа SortedSetсохраняются в отсортированном порядке, класс SortedSetоказывается идеальным средством для работы с отсортированными множествами объектов. Коллекция типа SortedSetимеет динамический характер и расширяется по мере необходимости, чтобы вместить все элементы, которые должны в ней храниться.

Ниже перечислены четыре наиболее часто используемые конструктора, определенных в классе SortedSet.

public SortedSetO

public SortedSet(IEnumerable collection)

public SortedSet(IComparer comparer)

public SortedSet(IEnumerable collection, IComparer comparer)

В первой форме конструктора создается пустое множество, а во второй форме — множество, состоящее из элементов указываемой коллекции collection. В третьей форме конструктора допускается указывать способ сравнения с помощью параметра comparer. А в четвертой форме создается множество, состоящее из элементов указываемой коллекции collection , и используется заданный способ сравнения comparer. Имеется также пятая форма конструктора данного класса, в которой допускается инициализировать множество последовательно упорядоченными данными.

В классе SortedSetреализуется интерфейс ISet, а следовательно, в нем предоставляется полный набор операций со множествами. В этом классе предоставляется также метод GetViewBetween(), возвращающий часть множества в форме объекта типа SortedSet, метод RemoveWhere(), удаляющий из множества элементы, не удовлетворяющие заданному условию, или предикату, а также метод Reverse(), возвращающий объект типа IEnumerable, который циклически проходит множество в обратном порядке.

Помимо свойств, определенных в интерфейсах, которые реализуются в классе SortedSet, в него введены дополнительные свойства, приведенные ниже.

public IComparer Comparer { get; }

public T Max { get; }

public T Min { get; }

Свойство Comparerполучает способ сравнения для вызывающего множества. Свойство Махполучает наибольшее значение во множестве, а свойство Min— наименьшее значение во множестве.

В качестве примера применения класса SortedSetна практике просто замените обозначение HashSetна SortedSetв исходном коде программы из предыдущего подраздела, посвященного коллекциям типа HashSet.

Параллельные коллекции

В версию 4.0 среды .NET Framework добавлено новое пространство имен System.Collections.Concurrent. Оно содержит коллекции, которые являются потокобезопасными и специально предназначены для параллельного программирования. Это означает, что они могут безопасно использоваться в многопоточной программе, где возможен одновременный доступ к коллекции со стороны двух или больше параллельно исполняемых потоков. Ниже перечислены классы параллельных коллекций.

Параллельная коллекция - Описание

BlockingCollection - Предоставляет оболочку для блокирующей реализации интерфейса IProducerConsumerCollection

ConcurrentBag - Обеспечивает неупорядоченную реализацию интерфейса IProducerConsumerCollection,которая оказывается наиболее пригодной в том случае, когда информация вырабатывается и потребляется в одном потоке

ConcurrentDictionary - Сохраняет пары “ключ-значение", а значит, реализует параллельный словарь

ConcurrentQueue -Реализует параллельную очередь и соответствующий вариант интерфейса IProducerConsumerCollection

ConcurrentStack -Реализует параллельный стек и соответствующий вариант интерфейса IproducerConsumerCollection

Как видите, в нескольких классах параллельных коллекций реализуется интерфейс IProducerConsumerCollection. Этот интерфейс также определен в пространстве имен System.Collections.Concurrent. Он служит в качестве расширения интерфейсов IEnumerable, IEnumerableи ICollection. Кроме того, в нем определены методы TryAdd()и TryTake(), поддерживающие шаблон "поставщик-потребитель". (Классический шаблон "поставщик-потребитель" отличается решением двух задач. Первая задача производит элементы коллекции, а другая потребляет их.) Метод TryAdd()пытается добавить элемент в коллекцию, а метод TryTake()— удалить элемент из коллекции. Ниже приведены формы объявления обоих методов.

Читать дальше
Тёмная тема
Сбросить

Интервал:

Закладка:

Сделать


Герберт Шилдт читать все книги автора по порядку

Герберт Шилдт - все книги автора в одном месте читать по порядку полные версии на сайте онлайн библиотеки LibKing.




C# 4.0: полное руководство отзывы


Отзывы читателей о книге C# 4.0: полное руководство, автор: Герберт Шилдт. Читайте комментарии и мнения людей о произведении.


Понравилась книга? Поделитесь впечатлениями - оставьте Ваш отзыв или расскажите друзьям

Напишите свой комментарий
x