본문 바로가기
스터디/C#

LINQ 쿼리 연산자 정리

by newoo 2019. 8. 16.
쿼리 연산자 실행형태 설명
Where 지연실행 조건에 따라 값의 시퀀스를 필터링 처리
Skip   시퀀스 안에 지정된 개수만큼의 요소를 건너뛰고 남은 요소를 반환
SkipWhere   지정된 조건이 만족되는 동안에 시퀀스의 요소를 건너뛰고 남은 요소를 반환
Take   시퀀스의 가장 앞부분부터 요소를 지정된 개수만큼 반환
TakeWhile   지정된 조건이 만족되는 동안에 시퀀스에서 요소를 반환
DefaultIfEmpty   지정한 시퀀스의 요소를 반환, 시퀀스가 비어 있을 경우에는 형식 매개변수를 기본값으로 반환
Select   시퀀스에 있는 각 요소를 새로운 형으로 사상
SelectMany   시퀀스에 있는 각 요소를 IEnumerable<T>로 사상하고 그 결과로 나온 시퀀스를 하나의 시퀀스로 평탄화*함
GroupBy   지정된 키 셀렉터 함수에 따라 시퀀스에 있는 요소를 그룹화함
GroupJoin   키가 같은지 여부에 따라 두 개의 시퀀스 요소를 서로 관련 짓고 그 결과를 그룹화함
Join   일치하는 키에 따라 두 개의 시퀀스 요소를 서로 관련 짓는다
Concat   두 개의 시퀀스를 연결한다
Zip   지정된 함수를 두 개의 시퀀스에 대응되는 요소에 적용하고 하나의 시퀀스를 생성
OrderBy   시퀀스 요소를 키에 맞춰 오름차순으로 정렬
OrderByDescending   시퀀스 요소를 키에 맞춰 내림차순으로 정렬
ThenBy   정렬한 결과를 또 다른 키에 맞춰 오름차순으로 배치
ThenByDescending   정렬한 결과를 또 다른 키에 맞춰 내림차순으로 배치
Reverse   시퀀스 요소의 순서를 반전
Cast   시퀀스 요소를 지정된 형으로 형변환함
OfType   지정된 형만을 시퀀스에서 꺼내서 형변환함
Distinct   시퀀스에서 중복되지 않는 요소의 목록을 반환
Except   두 개의 시퀀스의 차집합을 생성
Union   두 개의 시퀀스의 합집합을 생성
Intersect   두 개의 시퀀스의 곱집합을 생성
First 즉시 실행 시퀀스의 첫 요소를 반환
FirstOrDefault   시퀀스의 첫 요소를 반환하고, 시퀀스에 요소가 포함되어 있지 않을 경우에는 기본값으로 반환
Last   시퀀스의 마지막 요소를 반환
LastOrDefault   시퀀스의 마지막 요소를 반환하고, 시퀀스에 요소가 포함되어 있지 않을 경우에는 기본값으로 반환
ElementAt   시퀀스 안에서 지정된 인덱스 위치에 있는 요소를 반환
ElementAtOrDefault   시퀀스 안에서 지정된 인덱스 위치에 있는 요소를 반환하고, 인덱스가 시퀀스의 범위를 벗어날 경우에는 기본값을 반환
Single   시퀀스에서 유일한 요소를 반환
SingleOrDefault   시퀀스에서 유일한 요소를 반환하고, 시퀀스가 비었을 경우에는 기본값을 반환
Count   시퀀스에 있는 요소의 개수를 반환
LongCount   시퀀스에 있는 요소의 개수를 long형으로 반환
Average   입력 시퀀스의 평균값을 계산
Max   시퀀스 요소의 최대값을 반환
Min   시퀀스 요소의 최소값을 반환
Sum   시퀀스 요소 전체의 합을 반환
Aggregate   시퀀스에 누적기 함수를 적용
All   시퀀스의 모든 요소가 조건을 만족하는지 판단
Any   시퀀스에 해당 요소가 포함되어 있는지 판단
Contains   지정한 요소가 시퀀스에 포함되어 있는지 판단
SquenceEqual   두 개의 시퀀스가 같은지 여부를 판단
ToArray   시퀀스로 배열을 생성
ToDitctionary   시퀀스로 Dictionary<TKey, TValue>를 생성
ToList   시퀀스로 List<T>를 생성
ToLookup   시퀀스로 Lookup<TKey, TElement>를 생성

*평탄화란?

시퀀스에 있는 각 요소를 IEnumerable<T>로 사상하고, 그 결과로 구한 중첩된 시퀀스를 하나의 평탄한 시퀀스로 만드는 작업을 말함

'스터디 > C#' 카테고리의 다른 글

C# 대리자(Delegate)의 진화  (0) 2019.08.17
20190817 스터디 질문  (1) 2019.08.17
LINQ(Language Integrated Query)  (0) 2019.08.16
람다식(Lamda)  (0) 2019.08.16
정적메서드에서는 자기 자신의 인스턴스 메서드 호출불가  (0) 2019.08.14