Show / Hide Table of Contents

Class CollectionUtilities

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

Inheritance
System.Object
CollectionUtilities
Inherited Members
System.Object.ToString()
System.Object.Equals(System.Object)
System.Object.Equals(System.Object, System.Object)
System.Object.ReferenceEquals(System.Object, System.Object)
System.Object.GetHashCode()
System.Object.GetType()
System.Object.MemberwiseClone()
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

true, если все элементы равны или false при первом несовпадении.

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

true, если item приналежит source; иначе - false.

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

Если аргумент source или secondSource равен null.

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

Если параметр match, задающий критерий поиска, пустой (null)

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

Найденные объекты, если поиск был успешен; иначе - результат поиска по умолчанию (defValue).

Type Parameters
Name Description
T

Любой тип.

Remarks

Расширяемый тип для классов, реализующих интерфейс IEnumerable.

Exceptions
Type Condition
ArgumentNullOrEmptyException

Если параметр match, задающий критерий поиска, пустой.

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

Если параметр action, задающий назначаемый метод, пустой.

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

Если один из передаваемых параметров (match, action) пустой.

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

true, если перечислитель source пустой.

IsNotEmpty(IEnumerable)

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

Declaration
public static bool IsNotEmpty(this IEnumerable source)
Parameters
Type Name Description
System.Collections.IEnumerable source

Перечислитель.

Returns
Type Description
System.Boolean

true, если перечислитель source непустой; иначе - false.

IsNullOrEmpty(IEnumerable)

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

Declaration
public static bool IsNullOrEmpty(this IEnumerable source)
Parameters
Type Name Description
System.Collections.IEnumerable source

Перечислитель.

Returns
Type Description
System.Boolean

true, если перечислитель source пустой или null; иначе - false.

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

True, if item with current index is found in collection. Otherwise - false.

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.

In This Article
Back to top © 2021 Creatio. All rights reserved.