Class CollectionUtilities
Предоставляет служебные методы для работы с коллекциями.
Inheritance
Inherited Members
Namespace: Terrasoft.Common
Assembly: Terrasoft.Common.dll
Syntax
public static class CollectionUtilities
Methods
AddIfNotExists<T>(ICollection<T>, T)
Adds an element to the specified source if it is not part of the source.
Declaration
public static bool AddIfNotExists<T>(this ICollection<T> source, T item)
Parameters
Type | Name | Description |
---|---|---|
System.Collections.Generic.ICollection<T> | source | Source. |
T | item | Item. |
Returns
Type | Description |
---|---|
System.Boolean | Flag that indicates when item was added or not. |
Type Parameters
Name | Description |
---|---|
T | Any type. |
AddRange<T>(ICollection<T>, IEnumerable<T>)
Добавляет перечень элементов в указанный источник.
Declaration
public static void AddRange<T>(this ICollection<T> source, IEnumerable<T> collection)
Parameters
Type | Name | Description |
---|---|---|
System.Collections.Generic.ICollection<T> | source | Источник. |
System.Collections.Generic.IEnumerable<T> | collection | Перечень элементов - класс, реализующий интерфейс IEnumerable<T>. |
Type Parameters
Name | Description |
---|---|
T | Любой тип. |
Remarks
Расширяемый тип для класса Collection.
AddRangeIfNotExists<T>(ICollection<T>, IEnumerable<T>)
Добавляет элементы коллекции в указанный источник, если они не входят в состав источника.
Declaration
public static void AddRangeIfNotExists<T>(this ICollection<T> source, IEnumerable<T> collection)
Parameters
Type | Name | Description |
---|---|---|
System.Collections.Generic.ICollection<T> | source | Источник. |
System.Collections.Generic.IEnumerable<T> | collection | Коллекция. |
Type Parameters
Name | Description |
---|---|
T | Любой тип. |
Remarks
Расширяемый тип для класса Collection.
CompareZip<TFirst, TSecond>(IEnumerable<TFirst>, IEnumerable<TSecond>, Func<TFirst, TSecond, Boolean>)
Сравнивает поэлементно две последовательности, используя указанную функцию предиката.
Declaration
public static bool CompareZip<TFirst, TSecond>(this IEnumerable<TFirst> source, IEnumerable<TSecond> secondSource, Func<TFirst, TSecond, bool> comparePredicate)
Parameters
Type | Name | Description |
---|---|---|
System.Collections.Generic.IEnumerable<TFirst> | source | Первая последовательность. |
System.Collections.Generic.IEnumerable<TSecond> | secondSource | Вторая последовательность. |
System.Func<TFirst, TSecond, System.Boolean> | comparePredicate | Функция, которая сравнивает соответствующие элементы последовательностей. |
Returns
Type | Description |
---|---|
System.Boolean |
|
Type Parameters
Name | Description |
---|---|
TFirst | Тип элементов первой входной последовательности. |
TSecond | Тип элементов второй входной последовательности. |
Remarks
При разном количестве элементов в коллекциях максимальное количество сравнений будет равняться количеству элементов в меньшей коллекции.
Contains(IEnumerable<Guid>, Guid)
Определяет, принадлежит ли экземпляр GUID заданному перечню System.Guid.
Declaration
public static bool Contains(this IEnumerable<Guid> source, Guid item)
Parameters
Type | Name | Description |
---|---|---|
System.Collections.Generic.IEnumerable<System.Guid> | source | Перечень System.Guid. |
System.Guid | item | Экземпляр GUID, который необходимо найти в System.Guid |
Returns
Type | Description |
---|---|
System.Boolean |
|
Except<T>(IEnumerable<T>, IEnumerable<T>, Func<T, T, Boolean>)
Возвращает перечислитель элементов последовательности source
, которые отсутствуют в
последовательности secondSource
, используя для определения равности предикат
comparer
.
Declaration
public static IEnumerable<T> Except<T>(this IEnumerable<T> source, IEnumerable<T> secondSource, Func<T, T, bool> comparer)
Parameters
Type | Name | Description |
---|---|---|
System.Collections.Generic.IEnumerable<T> | source | Первая последовательность. |
System.Collections.Generic.IEnumerable<T> | secondSource | Вторая последовательность. |
System.Func<T, T, System.Boolean> | comparer | Функция, которая сравнивает элементы последовательностей. |
Returns
Type | Description |
---|---|
System.Collections.Generic.IEnumerable<T> | Перечислитель, который содержит элементы из первой последовательности, которые отсутствуют во второй. |
Type Parameters
Name | Description |
---|---|
T | Любой тип. |
Exceptions
Type | Condition |
---|---|
ArgumentNullOrEmptyException | Если аргумент |
Find<T>(IEnumerable<T>, Predicate<T>)
Поиск элемента по указанному критерию.
Declaration
public static T Find<T>(this IEnumerable<T> source, Predicate<T> match)
Parameters
Type | Name | Description |
---|---|---|
System.Collections.Generic.IEnumerable<T> | source | Элемент - объект поиска. |
System.Predicate<T> | match | Критерий поиска. |
Returns
Type | Description |
---|---|
T | Найденные объекты. |
Type Parameters
Name | Description |
---|---|
T | Любой тип. |
Remarks
Расширяемый тип для классов, реализующих интерфейс IEnumerable<T>.
Exceptions
Type | Condition |
---|---|
ArgumentNullOrEmptyException | Если параметр |
Find<T>(IEnumerable<T>, Predicate<T>, T)
Поиск элемента по указанному критерию.
Declaration
public static T Find<T>(this IEnumerable<T> source, Predicate<T> match, T defValue)
Parameters
Type | Name | Description |
---|---|---|
System.Collections.Generic.IEnumerable<T> | source | Объект поиска. |
System.Predicate<T> | match | Критерий поиска. |
T | defValue | Результат поиска по умолчанию. |
Returns
Type | Description |
---|---|
T | Найденные объекты, если поиск был успешен; иначе - результат поиска
по умолчанию ( |
Type Parameters
Name | Description |
---|---|
T | Любой тип. |
Remarks
Расширяемый тип для классов, реализующих интерфейс IEnumerable.
Exceptions
Type | Condition |
---|---|
ArgumentNullOrEmptyException | Если параметр |
ForEach<T>(IEnumerable<T>, Action<T>)
Назначает метод каждому элементу источника.
Declaration
public static void ForEach<T>(this IEnumerable<T> source, Action<T> action)
Parameters
Type | Name | Description |
---|---|---|
System.Collections.Generic.IEnumerable<T> | source | Источник. |
System.Action<T> | action | Назначаемый метод. |
Type Parameters
Name | Description |
---|---|
T | Любой тип. |
Remarks
Расширяемый тип для классов, реализующих интерфейс IEnumerable.
Exceptions
Type | Condition |
---|---|
ArgumentNullOrEmptyException | Если параметр |
ForEach<T>(IEnumerable<T>, Predicate<T>, Action<T>)
Назначает метод каждому элементу источника, отвечающего заданному критерию.
Declaration
public static void ForEach<T>(this IEnumerable<T> source, Predicate<T> match, Action<T> action)
Parameters
Type | Name | Description |
---|---|---|
System.Collections.Generic.IEnumerable<T> | source | Источник. |
System.Predicate<T> | match | Критерий. |
System.Action<T> | action | Назначаемый метод. |
Type Parameters
Name | Description |
---|---|
T | Любой тип. |
Remarks
Расширяемый тип для классов, реализующих интерфейс IEnumerable.
Exceptions
Type | Condition |
---|---|
ArgumentNullOrEmptyException | Если один из передаваемых параметров
( |
ForEachAsync<T>(IEnumerable<T>, Func<T, Task>)
Invokes asynchronous action for each item in collection.
Declaration
public static Task ForEachAsync<T>(this IEnumerable<T> source, Func<T, Task> action)
Parameters
Type | Name | Description |
---|---|---|
System.Collections.Generic.IEnumerable<T> | source | Items collection. |
System.Func<T, System.Threading.Tasks.Task> | action | Asynchronous action to invoke on each item. |
Returns
Type | Description |
---|---|
System.Threading.Tasks.Task | Task that represents asynchronous operation. |
Type Parameters
Name | Description |
---|---|
T | Collection item type. |
GetItemsString<T>(IEnumerable<T>)
Возвращает перечень объектов в виде строки. В качестве разделителя выступает запятая.
Declaration
public static string GetItemsString<T>(this IEnumerable<T> source)
Parameters
Type | Name | Description |
---|---|---|
System.Collections.Generic.IEnumerable<T> | source | Перечень объектов. |
Returns
Type | Description |
---|---|
System.String | Строковое представление объектов |
Type Parameters
Name | Description |
---|---|
T | Любой тип. |
Remarks
Расширяемый метод для классов, реализующих интерфейс IEnumerable.
GetItemsString<T>(IEnumerable<T>, String)
Возвращает перечень объектов в виде строки. В качестве разделителя выступает delimiter
.
Declaration
public static string GetItemsString<T>(this IEnumerable<T> source, string delimiter)
Parameters
Type | Name | Description |
---|---|---|
System.Collections.Generic.IEnumerable<T> | source | Перечень объектов. |
System.String | delimiter | Разделитель. |
Returns
Type | Description |
---|---|
System.String | Строковое представление объектов. |
Type Parameters
Name | Description |
---|---|
T | Любой тип. |
Remarks
Расширяемый метод для классов, реализующих интерфейс IEnumerable.
IsEmpty(IEnumerable)
Определяет, является ли заданный перечислитель пустым.
Declaration
public static bool IsEmpty(this IEnumerable source)
Parameters
Type | Name | Description |
---|---|---|
System.Collections.IEnumerable | source | Перечислитель. |
Returns
Type | Description |
---|---|
System.Boolean |
|
IsNotEmpty(IEnumerable)
Определяет, является ли непустым заданный перечислитель.
Declaration
public static bool IsNotEmpty(this IEnumerable source)
Parameters
Type | Name | Description |
---|---|---|
System.Collections.IEnumerable | source | Перечислитель. |
Returns
Type | Description |
---|---|
System.Boolean |
|
IsNullOrEmpty(IEnumerable)
Определяет, является ли заданный перечислитель пустым или null
.
Declaration
public static bool IsNullOrEmpty(this IEnumerable source)
Parameters
Type | Name | Description |
---|---|---|
System.Collections.IEnumerable | source | Перечислитель. |
Returns
Type | Description |
---|---|
System.Boolean |
|
ParallelForEachAsync<T>(IEnumerable<T>, Func<T, Task>)
Invokes asynchronous action for each item in collection in parallel.
Declaration
public static Task ParallelForEachAsync<T>(this IEnumerable<T> source, Func<T, Task> action)
Parameters
Type | Name | Description |
---|---|---|
System.Collections.Generic.IEnumerable<T> | source | Items collection. |
System.Func<T, System.Threading.Tasks.Task> | action | Asynchronous action to invoke on each item. |
Returns
Type | Description |
---|---|
System.Threading.Tasks.Task | Task that represents asynchronous operation. |
Type Parameters
Name | Description |
---|---|
T | Collection item type. |
ParallelForEachAsync<T>(IEnumerable<T>, Func<T, Task>, Int32)
Invokes asynchronous action for each item in collection in parallel.
Declaration
public static Task ParallelForEachAsync<T>(this IEnumerable<T> source, Func<T, Task> action, int maxDegreeOfParallelism)
Parameters
Type | Name | Description |
---|---|---|
System.Collections.Generic.IEnumerable<T> | source | Items collection. |
System.Func<T, System.Threading.Tasks.Task> | action | Asynchronous action to invoke on each item. |
System.Int32 | maxDegreeOfParallelism | Maximum degree of parallelism. |
Returns
Type | Description |
---|---|
System.Threading.Tasks.Task | Task that represents asynchronous operation. |
Type Parameters
Name | Description |
---|---|
T | Collection item type. |
RemoveRange<T>(ICollection<T>, IEnumerable<T>)
Удаляет перечень элементов из указанного источника.
Declaration
public static void RemoveRange<T>(this ICollection<T> source, IEnumerable<T> collection)
Parameters
Type | Name | Description |
---|---|---|
System.Collections.Generic.ICollection<T> | source | Источник. |
System.Collections.Generic.IEnumerable<T> | collection | Перечень элементов - класс, реализующий интерфейс IEnumerable<T>. |
Type Parameters
Name | Description |
---|---|
T | Любой тип. |
Remarks
Расширяемый тип для класса Collection.
SplitOnChunks<T>(IEnumerable<T>, Int32)
Declaration
public static IEnumerable<IEnumerable<T>> SplitOnChunks<T>(this IEnumerable<T> source, int chunkSize)
Parameters
Type | Name | Description |
---|---|---|
System.Collections.Generic.IEnumerable<T> | source | |
System.Int32 | chunkSize |
Returns
Type | Description |
---|---|
System.Collections.Generic.IEnumerable<System.Collections.Generic.IEnumerable<T>> |
Type Parameters
Name | Description |
---|---|
T |
SplitOnParts<T>(IEnumerable<T>, Int32)
Splits collection to the specified parts number.
Declaration
public static IEnumerable<IEnumerable<T>> SplitOnParts<T>(this IEnumerable<T> source, int part)
Parameters
Type | Name | Description |
---|---|---|
System.Collections.Generic.IEnumerable<T> | source | Source collection |
System.Int32 | part | Parts count. |
Returns
Type | Description |
---|---|
System.Collections.Generic.IEnumerable<System.Collections.Generic.IEnumerable<T>> |
Type Parameters
Name | Description |
---|---|
T |
TryGetItemByIndex<TItem>(Collection<TItem>, Int32, out TItem)
Tries to get an item of the collection by the given index.
Declaration
public static bool TryGetItemByIndex<TItem>(this Collection<TItem> source, int index, out TItem item)
Parameters
Type | Name | Description |
---|---|---|
System.Collections.ObjectModel.Collection<TItem> | source | The source collection. |
System.Int32 | index | The index. |
TItem | item | The item. |
Returns
Type | Description |
---|---|
System.Boolean |
|
Type Parameters
Name | Description |
---|---|
TItem | The type of the item. |
Remarks
Used for thread-unsafe collections, when is not important to get item of the collection in actual state.