Using system collections generic что это

System. Collections Пространство имен

Некоторые сведения относятся к предварительной версии продукта, в которую до выпуска могут быть внесены существенные изменения. Майкрософт не предоставляет никаких гарантий, явных или подразумеваемых, относительно приведенных здесь сведений.

Содержит интерфейсы и классы, определяющие различные коллекции объектов, такие как списки, очереди, битовые массивы, хэш-таблицы и словари.

Классы

Реализует интерфейс IList с помощью массива с динамическим изменением размера по требованию.

Управляет компактным массивом двоичных значений, представленных логическими значениями, где значение true соответствует включенному биту (1), а значение false соответствует отключенному биту (0).

Проверяет равенство двух объектов без учета регистра строк.

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

Предоставляет базовый класс abstract для строго типизированной коллекции.

Проверяет равенство двух объектов с учетом регистра строк.

Предоставляет базовый класс abstract для строго типизированной коллекции пар «ключ-значение».

Представляет коллекцию пар «ключ-значение», которые упорядочены по хэш-коду ключа.

Представляет коллекцию объектов, основанную на принципе «первым поступил — первым обслужен».

Предоставляет базовый класс abstract для строго типизированной неуниверсальной коллекции только для чтения.

Предоставляет коллекцию пар «ключ-значение», упорядоченных по ключам. Доступ к парам можно получить по ключу и индексу.

Представляет простую неуниверсальную коллекцию объектов, работающую по принципу «последним поступил — первым обслужен».

Предоставляет объекты для структурного сравнения двух объектов коллекции.

Структуры

Определяет пару «ключ-значение», которую можно задать или извлечь.

Интерфейсы

Определяет размер, перечислители и методы синхронизации для всех неуниверсальных коллекций.

Предоставляет метод, который сравнивает два объекта.

Представляет небазовую коллекцию пар «ключ-значение».

Перечисляет элементы неуниверсального словаря.

Предоставляет перечислитель, который поддерживает простой перебор элементов неуниверсальной коллекции.

Поддерживает простой перебор по неуниверсальной коллекции.

Определяет методы, поддерживающие сравнение объектов на предмет равенства.

Предоставляет хеш-код объекта, используя пользовательскую хеш-функцию.

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

Поддерживает структурное сравнение объектов коллекции.

Определяет методы, поддерживающие сравнение объектов на предмет структурного равенства.

Источник

C#. Урок 10. Коллекции

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

Исходный код примеров из этой статьи можете скачать из нашего github-репозитория.

Коллекции

Самым примитивным способом хранения объектов в C# является использование массивов. Одной из основных проблем, с которой столкнется разработчик следуя такому подходу, является то, что массивы не предоставляют инструментов для динамического изменения размера. В языке C# есть два пространства имен для работы со структурами данных:

В рамках данного урока мы не будем подробно останавливаться на особенностях обобщенных типов, на текущий момент можете их воспринимать как псевдонимы, для реальных типов данных.

Коллекции в языке C#. Пространство имен System.Collections.Generic

Пространство System.Collections.Generic содержит большой набор коллекций, которые позволяют удобно и эффективно решать широкий круг задач. Ниже, в таблице, перечислены некоторые из обобщенных классов с указанием интерфейсов, которые они реализуют.

Познакомимся поближе с несколькими классами из приведенной таблицы.

Класс List

Создание объекта класса List

Можно создать пустой список и добавить в него элементы позже, с помощью метода Add() :

Либо воспользоваться синтаксисом, позволяющем указать набор объектов, который будет храниться в списке:

Работа с объектами List

Свойства класса List

СвойствоОписание
CountКоличество элементов в списке
CapacityЕмкость списка – количество элементов, которое может вместить список без изменения размера

Методы класса List

МетодОписание
Add(T)Добавляет элемент к списку
BinarySearch(T)Выполняет поиск по списку
Clear()Очистка списка
Contains(T)Возвращает true, если список содержит указанный элемент
IndexOf(T)Возвращает индекс переданного элемента
ForEach(Action )Выполняет указанное действие для всех элементов списка
Insert(Int32, T)Вставляет элемент в указанную позицию
Find(Predicate )Осуществляет поиск первого элемент, для которого выполняется заданный предикат
Remove(T)Удаляет указанный элемент из списка
RemoveAt(Int32)Удаляет элемент из заданной позиции
Sort()Сортирует список
Reverse()Меняет порядок расположения элементов на противоположный

Код метода ListToString :

Создадим список игроков и выполним с ним ряд действий:

Класс Dictionary

Создание объекта класса Dictionary

Словарь с набором элементов:

Работа с объектами Dictionary

Свойства класса Dictionary

СвойствоОписание
CountКоличество объектов в словаре
KeysКлючи словаря
ValuesЗначения элементов словаря

Методы класса Dictionary

МетодОписание
Add(TKey, TValue)Добавляет в словарь элемент с заданным ключом и значением
Clear()Удаляет из словаря все ключи и значения
ContainsValue(TValue)Проверяет наличие в словаре указанного значения
ContainsKey(TKey)Проверяет наличие в словаре указанного ключа
GetEnumerator()Возвращает перечислитель для перебора элементов словаря
Remove(TKey)Удаляет элемент с указанным ключом
TryAdd(TKey, TValue)Метод, реализующий попытку добавить в словарь элемент с заданным ключом и значением
TryGetValue(TKey, TValue)Метод, реализующий попытку получить значение по заданному ключу

Кортежи Tuple и ValueTuple

Относительно недавним нововведением в языке C# (начиная с C# 7) являются кортежи. Кортежем называют структуру данных типа Tuple или ValueTuple (чуть ниже мы рассмотрим различия между ними), которые позволяют группировать объекты разных типов друг с другом. С практической точки зрения они являются удобным способом возврата из метода нескольких значений – это наиболее частый вариант использования кортежей.

Различия между Tuple и ValueTuple приведены в таблице ниже.

TupleValueTuple
Ссылочный типТип значение
Неизменяемый типИзменяемый тип
Элементы данных – это свойстваЭлементы данных – это поля

Создание кортежей

Рассмотрим несколько вариантов создания кортежей.

Создание кортежа без явного и с явным указанием имен полей:

При этом для доступа к элементам кортежа в первом варианте используются свойства Item с числом, указывающем на порядок элемента, во втором – заданные пользователем имена:

Возможны следующие способы создания кортежей с явным заданием имен:

При этом возможность обращаться через свойства Item1 и Item2 для созданных выше переменных остается:

Работа с кортежами

Кортежи можно присваивать друг другу, при этом необходимо, чтобы соблюдались следующие условия:

Операцию присваивания можно использовать для деструкции кортежа.

Исходный код примеров из этой статьи можете скачать из нашего github-репозитория.

Источник

System. Collections. Generic Пространство имен

Некоторые сведения относятся к предварительной версии продукта, в которую до выпуска могут быть внесены существенные изменения. Майкрософт не предоставляет никаких гарантий, явных или подразумеваемых, относительно приведенных здесь сведений.

Содержит интерфейсы и классы, определяющие универсальные коллекции, которые позволяют пользователям создавать строго типизированные коллекции, обеспечивающие повышенную производительность и безопасность типов по сравнению с неуниверсальными строго типизированными коллекциями.

Классы

Предоставляет методы расширения для универсальных коллекций.

Представляет коллекцию ключей и значений.

Представляет набор значений.

Предоставляет коллекцию, элементами которой являются типы, используемые в качестве ключей.

Исключение, которое выдается, когда ключ, указанный для доступа к элементу в коллекции, не совпадает ни с одним ключом в коллекции.

Представляет двунаправленный список.

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

Представляет очередь с минимальным приоритетом.

Представляет коллекцию объектов, основанную на принципе «первым поступил — первым обслужен».

Представляет коллекцию пар «ключ-значение», упорядоченных по ключу.

Представляет упорядоченную коллекцию объектов.

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

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

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

Структуры

Определяет пару «ключ-значение», которая может быть задана или получена.

Интерфейсы

Предоставляет перечислитель, который обеспечивает асинхронный перебор значений указанного типа.

Поддерживает простой асинхронный перебор элементов универсальной коллекции.

Определяет методы для управления универсальными коллекциями.

Определяет метод, реализуемый типом для сравнения двух объектов.

Представляет универсальную коллекцию пар «ключ-значение».

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

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

Определяет методы, поддерживающие сравнение объектов на предмет равенства.

Представляет коллекцию объектов, доступ к которым может быть получен индивидуально по индексу.

Представляет строго типизированную, доступную только для чтения коллекцию элементов.

Представляет универсальную коллекцию пар «ключ-значение», доступную только для чтения.

Представляет доступную только для чтения коллекцию элементов, доступ к которым может быть получен по индексу.

Предоставляет доступную только для чтения абстракцию набора.

Предоставляет основной интерфейс для абстракции наборов.

Комментарии

Источник

Дженерики

В целом, если нет необходимости в коллекции, состоящей из разных типов элементов – стоит использовать Generic аналог коллекции.

Алгоритмическая сложность

Самое полное сравнение сложности операций коллекций я нашел здесь.
Взятую там таблицу, с некоторыми замечаниями и дополнениями, я приведу ниже.

Внутренний видAdd/ InsertРасширение коллекцииQueue/ Push/ Dequeue/ Pop/ PeekRemove/ RemoveAtItem[i]Get EnumeratorMove Next
T[]МассивO(1)
List, ArrayList, Collection, Observable CollectionМассивO(1)/ O(n)O(n)O(n)O(1)O(1)O(1)
LinkedListДвойной списокO(1) До или после данного узлаO(1)O(1)O(1) До или после данного узлаO(n)O(1)O(1)
Stack, QueueМассивO(1)O(n)O(1)O(1)O(1)
Dictionary, HashSetHashtable с ссылками на массив индексов в случае коллизии *O(1), O(n) – в случае коллизии *O(n)O(1),O(n) – в случае коллизии *O(1),O(n) – в случае коллизии *O(1)O(1)
Sorted Dictionary, SortedSetКрасно-черное деревоO(logn)O(logn)O(logn)O(logn)O(logn)O(1)
SortedListМассивO(n)O(n)O(n)O(1)O(1)O(1)

* — коллизии происходят при попытке добавить элемент с уже существующим хэш-кодом (описание метода перехэширования можно найти здесь)

Интересное замечание об использовании коллекции HashSet я нашел здесь. Там говорится, что итерация по этой коллекции может быть и не такой уж быстрой… Дело в том, что при удалении элемента из коллекции вместо него остается «дыра», которая тоже итерируется. В случае же, если в коллекцию добавлялось большое количество элементов, а затем почти все из него удалились, это заметно скажется на скорости «пробега» по коллекции.

По заказу Microsoft компания Wintellect создала библиотеку Power Collections, основная цель которой – сделать некоторые классы наборов из STL-библиотеки C++ доступными для CLR. Подробнее можно посмотреть на их Web-сайте или на CodePlex.

Некоторые из классов этой библиотеки:

Класс набораОписание
BigListНабор упорядоченных объектов T. Очень эффективен, когда объектов больше 100.
BagНабор неупорядоченных объектов T. Этот набор хешируется и допускает дублирование объектов.
OrderedBagНабор упорядоченных объектов T. Допускается дублирование объектов.
SetНабор неупорядоченных элементов T. Дублирование не поддерживается.
OrderedSetНабор упорядоченных элементов T. Дублирование не
поддерживается.
OrderedDictionaryСловарь с упорядоченными однозначными ключами.
MultiDictionaryСловарь с многозначными ключами. Ключи хешируются,
допускается дублирование, элементы не упорядочены.
OrderedMultiDictionaryСловарь с упорядоченными многозначными ключами (также в отсортированном
порядке). Ключи хешируются, допускается
дублирование ключей

Кроме того есть еще одна не менее известная сборка коллекций: C5 generic collections.

Источник

Stack Класс

Определение

Некоторые сведения относятся к предварительной версии продукта, в которую до выпуска могут быть внесены существенные изменения. Майкрософт не предоставляет никаких гарантий, явных или подразумеваемых, относительно приведенных здесь сведений.

Параметры типа

Задает тип элементов в стеке.

Примеры

В следующем примере кода показано несколько методов Stack универсального класса. В примере кода создается стек строк с емкостью по умолчанию и используется Push метод для отправки пяти строк в стек. Элементы стека перечисляются, что не приводит к изменению состояния стека. PopМетод используется для POP первой строки из стека. PeekМетод используется для просмотра следующего элемента в стеке, а затем Pop метод используется для его POP.

Массив в два раза создается размер стека, а CopyTo метод используется для копирования элементов массива, начиная с середины массива. Stack Конструктор снова используется для создания копии стека с порядком элементов в обратном порядке, поэтому три элемента null находятся в конце.

ContainsМетод используется для того, чтобы показать, что строка «четыре» находится в первой копии стека, после чего Clear метод очищает копию, а Count свойство показывает, что стек пуст.

Комментарии

Stack реализуется как массив.

Используйте System.Collections.Concurrent.ConcurrentStack типы и, System.Collections.Concurrent.ConcurrentQueue Если требуется одновременный доступ к коллекции из нескольких потоков.

Чаще всего используется для System.Collections.Generic.Stack сохранения состояния переменных во время вызовов других процедур.

Для и его элементов можно выполнить три основные операции System.Collections.Generic.Stack :

Stack принимает null как допустимое значение для ссылочных типов и допускает дублирование элементов.

Конструкторы

Свойства

Методы

Копирует Stack в существующий одномерный Array, начиная с указанного индекса массива.

Определяет, равен ли указанный объект текущему объекту.

Служит хэш-функцией по умолчанию.

Возвращает объект Type для текущего экземпляра.

Создает неполную копию текущего объекта Object.

Копирует Stack в новый массив.

Возвращает строку, представляющую текущий объект.

Явные реализации интерфейса

Копирует элементы коллекции ICollection в массив Array, начиная с указанного индекса массива Array.

Возвращает значение, показывающее, является ли доступ к коллекции ICollection синхронизированным (потокобезопасным).

Получает объект, с помощью которого можно синхронизировать доступ к коллекции ICollection.

Возвращает перечислитель, который осуществляет итерацию по коллекции.

Возвращает перечислитель, выполняющий перебор элементов в коллекции.

Методы расширения

Создает неизменяемый массив на основе указанной коллекции.

Создает неизменяемый словарь на основе существующей коллекции элементов, применяя функцию преобразования к исходным ключам.

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

Выполняет перечисление и преобразование последовательности и создает неизменяемый словарь на основе ее содержимого.

Выполняет перечисление и преобразование последовательности и создает на основе ее содержимого неизменяемый словарь с использованием указанной функции сравнения ключей.

Выполняет перечисление и преобразование последовательности и создает на основе ее содержимого неизменяемый словарь с использованием указанных функций сравнения ключей и значений.

Выполняет перечисление последовательности и создает неизменяемый набор хэширования на основе ее содержимого.

Выполняет перечисление последовательности, создает неизменяемый набор хэширования на основе ее содержимого и использует указанную функцию сравнения для типа набора.

Выполняет перечисление последовательности и создает неизменяемый список на основе ее содержимого.

Выполняет перечисление и преобразование последовательности и создает неизменяемый отсортированный словарь на основе ее содержимого.

Выполняет перечисление и преобразование последовательности и создает на основе ее содержимого неизменяемый отсортированный словарь с использованием указанной функции сравнения ключей.

Выполняет перечисление и преобразование последовательности и создает на основе ее содержимого неизменяемый отсортированный словарь с использованием указанных функций сравнения ключей и значений.

Выполняет перечисление последовательности и создает неизменяемый отсортированный набор на основе ее содержимого.

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

Применяет к последовательности агрегатную функцию.

Применяет к последовательности агрегатную функцию. Указанное начальное значение используется в качестве исходного значения агрегатной операции.

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

Проверяет, все ли элементы последовательности удовлетворяют условию.

Проверяет, содержит ли последовательность какие-либо элементы.

Проверяет, удовлетворяет ли какой-либо элемент последовательности заданному условию.

Добавляет значение в конец последовательности.

Вычисляет среднее для последовательности значений типа Decimal, получаемой в результате применения функции преобразования к каждому элементу входной последовательности.

Вычисляет среднее для последовательности значений типа Double, получаемой в результате применения функции преобразования к каждому элементу входной последовательности.

Вычисляет среднее для последовательности значений типа Int32, получаемой в результате применения функции преобразования к каждому элементу входной последовательности.

Вычисляет среднее для последовательности значений типа Int64, получаемой в результате применения функции преобразования к каждому элементу входной последовательности.

Вычисляет среднее для последовательности значений Decimal обнуляемого типа, получаемой в результате применения функции преобразования к каждому элементу входной последовательности.

Вычисляет среднее для последовательности значений Double обнуляемого типа, получаемой в результате применения функции преобразования к каждому элементу входной последовательности.

Вычисляет среднее для последовательности значений Int32 обнуляемого типа, получаемой в результате применения функции преобразования к каждому элементу входной последовательности.

Вычисляет среднее для последовательности значений Int64 обнуляемого типа, получаемой в результате применения функции преобразования к каждому элементу входной последовательности.

Вычисляет среднее для последовательности значений Single обнуляемого типа, получаемой в результате применения функции преобразования к каждому элементу входной последовательности.

Вычисляет среднее для последовательности значений типа Single, получаемой в результате применения функции преобразования к каждому элементу входной последовательности.

Приводит элементы объекта IEnumerable к заданному типу.

Объединяет две последовательности.

Определяет, содержится ли указанный элемент в последовательности, используя компаратор проверки на равенство по умолчанию.

Возвращает количество элементов в последовательности.

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

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

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

Возвращает различающиеся элементы последовательности, используя для сравнения значений компаратор проверки на равенство по умолчанию.

Возвращает различные элементы из последовательности в соответствии с заданной функцией выбора ключа.

Возвращает различные элементы из последовательности в соответствии с заданной функцией выбора ключа.

Возвращает элемент по указанному индексу в последовательности.

Возвращает элемент по указанному индексу в последовательности.

Возвращает элемент последовательности по указанному индексу или значение по умолчанию, если индекс вне допустимого диапазона.

Возвращает элемент последовательности по указанному индексу или значение по умолчанию, если индекс вне допустимого диапазона.

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

Формирует разность множества двух последовательностей в соответствии с заданной функцией выбора ключа.

Формирует разность множества двух последовательностей в соответствии с заданной функцией выбора ключа.

Возвращает первый элемент последовательности.

Возвращает первый элемент последовательности, удовлетворяющий указанному условию.

Возвращает первый элемент последовательности или значение по умолчанию, если последовательность не содержит элементов.

Возвращает первый элемент последовательности или значение по умолчанию, если последовательность не содержит элементов.

Возвращает первый элемент последовательности, удовлетворяющий указанному условию, или значение по умолчанию, если ни одного такого элемента не найдено.

Возвращает первый элемент последовательности, удовлетворяющий указанному условию, или значение по умолчанию, если ни одного такого элемента не найдено.

Группирует элементы последовательности в соответствии с заданной функцией селектора ключа.

Группирует элементы последовательности в соответствии с заданной функцией селектора ключа и сравнивает ключи с помощью указанного компаратора.

Группирует элементы последовательности в соответствии с заданной функцией селектора ключа и проецирует элементы каждой группы с помощью указанной функции.

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

Группирует элементы последовательности в соответствии с заданной функцией селектора ключа и создает результирующее значение для каждой группы и ее ключа.

Группирует элементы последовательности в соответствии с заданной функцией селектора ключа и создает результирующее значение для каждой группы и ее ключа. Ключи сравниваются с использованием заданного компаратора.

Группирует элементы последовательности в соответствии с заданной функцией селектора ключа и создает результирующее значение для каждой группы и ее ключа. Элементы каждой группы проецируются с помощью указанной функции.

Группирует элементы последовательности в соответствии с заданной функцией селектора ключа и создает результирующее значение для каждой группы и ее ключа. Значения ключей сравниваются с помощью указанного компаратора, элементы каждой группы проецируются с помощью указанной функции.

Устанавливает корреляцию между элементами двух последовательностей на основе равенства ключей и группирует результаты. Для сравнения ключей используется компаратор проверки на равенство по умолчанию.

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

Создает пересечение множеств двух последовательностей в соответствии с заданной функцией выбора ключа.

Создает пересечение множеств двух последовательностей в соответствии с заданной функцией выбора ключа.

Устанавливает корреляцию между элементами двух последовательностей на основе сопоставления ключей. Для сравнения ключей используется компаратор проверки на равенство по умолчанию.

Возвращает последний элемент последовательности.

Возвращает последний элемент последовательности, удовлетворяющий указанному условию.

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

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

Возвращает последний элемент последовательности, удовлетворяющий указанному условию, или значение по умолчанию, если ни одного такого элемента не найдено.

Возвращает последний элемент последовательности, удовлетворяющий указанному условию, или значение по умолчанию, если ни одного такого элемента не найдено.

Возвращает значение типа Int64, представляющее общее число элементов в последовательности.

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

Возвращает максимальное значение, содержащееся в универсальной последовательности.

Возвращает максимальное значение, содержащееся в универсальной последовательности.

Вызывает функцию преобразования для каждого элемента последовательности и возвращает максимальное значение типа Decimal.

Вызывает функцию преобразования для каждого элемента последовательности и возвращает максимальное значение типа Double.

Вызывает функцию преобразования для каждого элемента последовательности и возвращает максимальное значение типа Int32.

Вызывает функцию преобразования для каждого элемента последовательности и возвращает максимальное значение типа Int64.

Вызывает функцию преобразования для каждого элемента последовательности и возвращает максимальное значение Decimal обнуляемого типа.

Вызывает функцию преобразования для каждого элемента последовательности и возвращает максимальное значение Double обнуляемого типа.

Вызывает функцию преобразования для каждого элемента последовательности и возвращает максимальное значение Int32 обнуляемого типа.

Вызывает функцию преобразования для каждого элемента последовательности и возвращает максимальное значение Int64 обнуляемого типа.

Вызывает функцию преобразования для каждого элемента последовательности и возвращает максимальное значение Single обнуляемого типа.

Вызывает функцию преобразования для каждого элемента последовательности и возвращает максимальное значение типа Single.

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

Возвращает максимальное значение в универсальной последовательности в соответствии с заданной функцией выбора ключа.

Возвращает максимальное значение в универсальной последовательности в соответствии с заданной функцией выбора ключа.

Возвращает минимальное значение, содержащееся в универсальной последовательности.

Возвращает минимальное значение, содержащееся в универсальной последовательности.

Вызывает функцию преобразования для каждого элемента последовательности и возвращает минимальное значение типа Decimal.

Вызывает функцию преобразования для каждого элемента последовательности и возвращает минимальное значение типа Double.

Вызывает функцию преобразования для каждого элемента последовательности и возвращает минимальное значение типа Int32.

Вызывает функцию преобразования для каждого элемента последовательности и возвращает минимальное значение типа Int64.

Вызывает функцию преобразования для каждого элемента последовательности и возвращает минимальное значение Decimal обнуляемого типа.

Вызывает функцию преобразования для каждого элемента последовательности и возвращает минимальное значение Double обнуляемого типа.

Вызывает функцию преобразования для каждого элемента последовательности и возвращает минимальное значение Int32 обнуляемого типа.

Вызывает функцию преобразования для каждого элемента последовательности и возвращает минимальное значение Int64 обнуляемого типа.

Вызывает функцию преобразования для каждого элемента последовательности и возвращает минимальное значение Single обнуляемого типа.

Вызывает функцию преобразования для каждого элемента последовательности и возвращает минимальное значение типа Single.

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

Возвращает минимальное значение в универсальной последовательности в соответствии с заданной функцией выбора ключа.

Возвращает минимальное значение в универсальной последовательности в соответствии с заданной функцией выбора ключа.

Выполняет фильтрацию элементов объекта IEnumerable по заданному типу.

Сортирует элементы последовательности в порядке возрастания ключа.

Сортирует элементы последовательности в порядке возрастания с использованием указанного компаратора.

Сортирует элементы последовательности в порядке убывания ключа.

Сортирует элементы последовательности в порядке убывания с использованием указанного компаратора.

Добавляет значение в начало последовательности.

Изменяет порядок элементов последовательности на противоположный.

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

Проецирует каждый элемент последовательности в новую форму, добавляя индекс элемента.

Проецирует каждый элемент последовательности в объект IEnumerable и объединяет результирующие последовательности в одну последовательность.

Проецирует каждый элемент последовательности в объект IEnumerable и объединяет результирующие последовательности в одну последовательность. Индекс каждого элемента исходной последовательности используется в проецированной форме этого элемента.

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

Возвращает единственный элемент последовательности и генерирует исключение, если число элементов последовательности отлично от 1.

Возвращает единственный элемент последовательности, удовлетворяющий указанному условию, и вызывает исключение, если таких элементов больше одного.

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

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

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

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

Пропускает заданное число элементов в последовательности и возвращает остальные элементы.

Возвращает новую перечислимую коллекцию, содержащую элементы из source с исключенными count элементами из конца исходной коллекции.

Пропускает элементы в последовательности, пока они удовлетворяют заданному условию, и затем возвращает оставшиеся элементы.

Пропускает элементы в последовательности, пока они удовлетворяют заданному условию, и затем возвращает оставшиеся элементы. Индекс элемента используется в логике функции предиката.

Вычисляет сумму последовательности значений типа Decimal, получаемой в результате применения функции преобразования к каждому элементу входной последовательности.

Вычисляет сумму последовательности значений типа Double, получаемой в результате применения функции преобразования к каждому элементу входной последовательности.

Вычисляет сумму последовательности значений типа Int32, получаемой в результате применения функции преобразования к каждому элементу входной последовательности.

Вычисляет сумму последовательности значений типа Int64, получаемой в результате применения функции преобразования к каждому элементу входной последовательности.

Вычисляет сумму последовательности значений Decimal обнуляемого типа, получаемой в результате применения функции преобразования к каждому элементу входной последовательности.

Вычисляет сумму последовательности значений Double обнуляемого типа, получаемой в результате применения функции преобразования к каждому элементу входной последовательности.

Вычисляет сумму последовательности значений Int32 обнуляемого типа, получаемой в результате применения функции преобразования к каждому элементу входной последовательности.

Вычисляет сумму последовательности значений Int64 обнуляемого типа, получаемой в результате применения функции преобразования к каждому элементу входной последовательности.

Вычисляет сумму последовательности значений Single обнуляемого типа, получаемой в результате применения функции преобразования к каждому элементу входной последовательности.

Вычисляет сумму последовательности значений типа Single, получаемой в результате применения функции преобразования к каждому элементу входной последовательности.

Возвращает указанное число подряд идущих элементов с начала последовательности.

Возвращает указанный диапазон смежных элементов из последовательности.

Возвращает цепочку элементов последовательности, удовлетворяющих указанному условию.

Возвращает цепочку элементов последовательности, удовлетворяющих указанному условию. Индекс элемента используется в логике функции предиката.

Создает словарь Dictionary из объекта IEnumerable в соответствии с заданной функцией селектора ключа.

Создает словарь Dictionary из объекта IEnumerable в соответствии с заданной функцией селектора ключа и компаратором ключей.

Создает словарь Dictionary из объекта IEnumerable в соответствии с заданными функциями селектора ключа и селектора элемента.

Создает словарь Dictionary из объекта IEnumerable в соответствии с заданным компаратором и функциями селектора ключа и селектора элемента.

Создает HashSet из IEnumerable с использованием comparer для сравнения ключей.

Создает словарь Lookup из объекта IEnumerable в соответствии с заданной функцией селектора ключа.

Создает словарь Lookup из объекта IEnumerable в соответствии с заданной функцией селектора ключа и компаратором ключей.

Создает словарь Lookup из объекта IEnumerable в соответствии с заданными функциями селектора ключа и селектора элемента.

Создает объект Lookup из объекта IEnumerable в соответствии с заданным компаратором и функциями селектора ключа и селектора элемента.

Пытается определить количество элементов в последовательности без принудительного перечисления.

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

Создает объединение множеств двух последовательностей в соответствии с заданной функцией выбора ключа.

Создает объединение множеств двух последовательностей в соответствии с заданной функцией выбора ключа.

Выполняет фильтрацию последовательности значений на основе заданного предиката.

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

Создает последовательность кортежей с элементами из двух указанных последовательностей.

Создает последовательность кортежей с элементами из трех указанных последовательностей.

Применяет указанную функцию к соответствующим элементам двух последовательностей, что дает последовательность результатов.

Позволяет осуществлять параллельный запрос.

Позволяет осуществлять параллельный запрос.

Преобразовывает коллекцию IEnumerable в объект IQueryable.

Возвращает коллекцию элементов, содержащую предков каждого узла в исходной коллекции.

Возвращает отфильтрованную коллекцию элементов, содержащую предков каждого узла в исходной коллекции. В коллекцию включаются только элементы, соответствующие XName.

Возвращает коллекцию подчиненных узлов каждого документа и элемента в исходной коллекции.

Возвращает коллекцию элементов, содержащую подчиненные элементы каждого элемента и документа в исходной коллекции.

Возвращает отфильтрованную коллекцию элементов, содержащую подчиненные элементы каждого элемента и документа в исходной коллекции. В коллекцию включаются только элементы, соответствующие XName.

Возвращает коллекцию дочерних элементов каждого элемента и документа в исходной коллекции.

Возвращает отфильтрованную коллекцию дочерних элементов каждого элемента и документа в исходной коллекции. В коллекцию включаются только элементы, соответствующие XName.

Возвращает коллекцию узлов, содержащую все узлы в исходной коллекции, отсортированные в порядке следования документов.

Возвращает коллекцию дочерних узлов каждого документа и элемента в исходной коллекции.

Удаление каждого узла в исходной коллекции из родительского узла.

Применяется к

Потокобезопасность

Открытые статические ( Shared в Visual Basic) члены этого типа являются потокобезопасными. Потокобезопасная работа с членами экземпляров типа не гарантируется.

Stack Может поддерживать одновременно несколько модулей чтения, если коллекция не изменяется. Даже поэтому перечисление по коллекции не является потокобезопасной процедурой. Чтобы гарантировать потокобезопасность, можно заблокировать коллекцию на время всего перечисления. Чтобы разрешить доступ к коллекции из нескольких потоков для чтения и записи, необходимо реализовать собственную синхронизацию.

Источник

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *