Вы находитесь на странице: 1из 14

JOIN OUR COMMUNITY

Исходные типы
Результирующий тип

Исходные типы
https://t.me/joinchat/EJwCAxQyIxqFMKiPduekvA

IEnumerable/IQueryable
Примитивные типы

bool логический тип


Any Проверяет есть ли хоть один элемент в коллекции по условию
All Проверяет проходят ли все элементы коллекции по условию
Contains Содержит ли коллекция элемент
SequenceEqual Эквивалентность коллекций

numeric types числовой тип


Average Среднее значение числовой коллекции
Count Количество элементов в коллекции
LongCount Количество элементов в коллекции в long
Max Максимальный элемент коллекции
Min Минимальный элемент коллекции
Sum Сума элементов коллекции

Lazy - т.е. формируют запрос, но не материализуют результат

IEnumerable
IEnumerable<T>
Операции проекций
Select проекция с некой конвеерной обработкой каждого элемента
SelectMany собрать коллекцию списков в один список
Join объеденение списков по какому-то признаку
GroupJoin некий симбиоз join и groupby, позволяет соеденить по ключу и получить все значения второй последователь
Distinct удаление дубликатов
Reverse развернуть последовательность
Cast преобразование, можно заменить с помощью select
OfType фильтрация по типу, можно заменить с помощью select
Операции над множествами
Concat объединение последовательностей
Except взять элементы из первой, которые не встречаются во второй
Union в отличии от Concat объеденяет без дубликатов
Intersect элементы на пересечении двух последовательностей
Zip "сшивает" 2 последовательности как zip-застежка, на выходе получаем элемент для каждой последовательной пар
Опирации фильтрации
Where фильтрация по условию(логическому предикату)
Skip пропуск элементов
SkipWhile пропускать по условию
Take взять N элементов последовательности
TakeWhile брать элементы пока выполняется условие
Генераторы данных
Range Сгенерировать значения в диапазоне
Repeat Повторить значение N раз
Empty Создание пустой последовательности
DefaultIfEmpty возвращает default(тип коллекции) если последовательность пуста
Тип элемента коллекции
ElementAt возвращает элемент идущий по номеру
ElementAtOrDefault возвращает элемент по номеру или NULL если элемент не найден
First возращает первый элемент последовательности, либо выбрасывает исключение если элемент не най ден
FirstOrDefault возвращает первый элемент последовательности либо NULL, если элемент не найден
Last возвращает последний элемент последовательности либо выбрасывает исключение если элемент не най д
LastOrDefault возвращает последний элемент последовательности или NULL, если элемент не найден
Single - возращает единственный элемент в коллекции, либо выбрасывает исключение
SingleOrDefault возвращает единственный элемент в коллекции либо NULL, если его нет или больше одного
Aggregate возвращает 1 элемент попарно склеивая элементы, в несколько проходов

IEnumerable
IGrouping
GroupBy группировка по полю

чить все значения второй последовательности для значения первой в функции формирования результата

емент для каждой последовательной пары


Коллеция
ToArray - делает запрос к провай деру LINQ и возвращает массив
ToDictionary - делает запрос к провай деру LINQ и возвращает словарь
ToList - делает запрос к провай деру LINQ и возвращает лист

т не най ден

IOrderedEnumerable
IEnumerable
IOrderedEnumerable
OrderBy - сортировка по полю
OrderByDescending сортировка по полю по убыванию
IOrderedEnumerable
ThenBy Сортировка по вторичному признаку
ThenByDescending Сортировка по вторичному признаку по убыванию
ILookup
ToLookup - возвращает Lookup - структуру данных, где под ключами могут храниться коллекции
иться коллекции
JOIN OUR COMMUNITY https://t.me/joinchat/EJwCAxQyIxqFMKiPduekvA

Y
Get result

NOT LAZYreturn value

true/false
result ?
Y N

Any
All
Contains
SequenceEqual
Is
collection
Y needed ?

ToArray
ToDictionary
ToList
N (build query)
Get result

LAZY return IQueryble

Y Is
groupping
needed?

GroupBy
ToLookup

Is ordering
Y needed ?
N

OrderBy
ElementAt OrderByDescending
ElementAtOrDefault only for IOrderedEnumerable
First ThenBy
FirstOrDefault ThenByDescending
Last
LastOrDefault
Single
SingleOrDefault
Aggregate
N

Is ordering
needed ? N

Projection Operations with sets


Select Concat
OrderedEnumerable SelectMany Except
Join Union
GroupJoin Intersect
Distinct Zip
Reverse
Cast
OfType

Condition Generators
Where Range
Skip Repeat
SkipWhile Empty
Take DefaultIfEmpty
TakeWhile
JOIN OUR COMMUNITY https://t.me/joinchat/EJwCAxQyIxqFMKiPduekvA

public interface IEqualityComparer<in T>


{
bool Equals(T x, T y);
int GetHashCode(T obj);
}
nterface IEqualityComparer<in T> public interface IComparer<in T> public interface IEnumerato
{ {
uals(T x, T y); int Compare(T x, T y); object Current { get; }
etHashCode(T obj); } bool MoveNext();
void Reset();
}

public interface IEnumerabl


{
IEnumerator<T> GetEnum
}

public interface IGrouping<out TKey, out TElement> : IEnumerable<TElement>, IEnumerable


{
TKey Key { get; }
}

public interface ILookup<TKey, TElement> : IEnumerable<IGrouping<TKey, TElement>>, IEnumerable


{
int Count { get; }
IEnumerable<TElement> this[TKey key] { get; }
bool Contains(TKey key);
}
public interface IEnumerator

object Current { get; }


bool MoveNext();
void Reset();

public interface IEnumerable<out T> : IEnumerable public interface IEnumerator<out T> : IDisposable, IEnumerator
{
IEnumerator<T> GetEnumerator(); T Current { get; }
}

public interface IOrderedEnumerable<TElement> : IEnumerable<TElement>, IEnumerable


{
IOrderedEnumerable<TElement> CreateOrderedEnumerable<TKey>(Func<TElement, TKey> keySelector, ICompar
}

>>, IEnumerable
posable, IEnumerator

, TKey> keySelector, IComparer<TKey> comparer, bool descending);