LINQ-쿼리 연산자
쿼리 패턴을 형성하는 확장 메서드 집합을 LINQ 표준 쿼리 연산자라고합니다. LINQ 쿼리 식의 구성 요소 인 이러한 연산자는 필터링, 정렬, 프로젝션, 집계 등과 같은 다양한 쿼리 기능을 제공합니다.
LINQ 표준 쿼리 연산자는 기능에 따라 다음과 같이 분류 할 수 있습니다.
- 필터링 연산자
- 조인 연산자
- 프로젝션 작업
- 연산자 정렬
- 그룹화 연산자
- Conversions
- Concatenation
- Aggregation
- 수량 자 작업
- 파티션 작업
- 세대 운영
- 작업 설정
- Equality
- 요소 연산자
필터링 연산자
필터링은 특정 조건을 충족하는 요소 만 선택하도록 결과 집합을 제한하는 작업입니다.
예시보기
운영자 | 기술 | C # 쿼리 식 구문 | VB 쿼리 표현식 구문 |
---|---|---|---|
어디 | 조건 자 함수를 기반으로 값 필터링 | 어디 | 어디 |
OfType | 지정된 유형이 될 수있는 기능에 따라 값 필터링 | 해당 없음 | 해당 없음 |
조인 연산자
조인은 직접적인 방식으로 관계를 추적하기 어려운 데이터 소스를 대상으로하는 작업을 의미합니다.
예시보기
운영자 | 기술 | C # 쿼리 식 구문 | VB 쿼리 표현식 구문 |
---|---|---|---|
어울리다 | 연산자는 일치하는 키를 기준으로 두 시퀀스를 결합합니다. | 조인…에…에… 같음… | x에서…, y에서… 여기서 xa = ya |
GroupJoin | 두 시퀀스를 결합하고 일치하는 요소 그룹화 | …에…에… 같음…에… | 그룹 가입… In… On… |
프로젝션 작업
투영은 객체가 특정 속성 만 가진 완전히 새로운 형태로 변형되는 작업입니다.
예시보기
운영자 | 기술 | C # 쿼리 식 구문 | VB 쿼리 표현식 구문 |
---|---|---|---|
고르다 | 연산자는 변환 함수를 기반으로 값을 투영합니다. | 고르다 | 고르다 |
SelectMany | 연산자는 변환 함수를 기반으로하는 값 시퀀스를 투영하고 단일 시퀀스로 평평하게 만듭니다. | 여러 from 절 사용 | 여러 From 절 사용 |
연산자 정렬
정렬 작업을 사용하면 하나 이상의 속성을 기준으로 시퀀스 요소를 정렬 할 수 있습니다.
예시보기
운영자 | 기술 | C # 쿼리 식 구문 | VB 쿼리 표현식 구문 |
---|---|---|---|
주문 | 연산자는 오름차순으로 값을 정렬합니다. | 주문 | 주문 |
OrderByDescending | 연산자는 내림차순으로 값을 정렬합니다. | orderby ... 내림차순 | 정렬 기준 ... 내림차순 |
ThenBy | 오름차순으로 2 차 정렬을 실행합니다. | 주문 …, … | 주문 …, … |
ThenByDescending | 내림차순으로 2 차 정렬을 실행합니다. | orderby…,… 내림차순 | …,… 내림차순 |
역전 | 컬렉션의 요소 순서를 반대로 수행합니다. | 해당 없음 | 해당 없음 |
그룹화 연산자
운영자는 공통 공유 속성을 기반으로 데이터를 일부 그룹에 넣습니다.
예시보기
운영자 | 기술 | C # 쿼리 식 구문 | VB 쿼리 표현식 구문 |
---|---|---|---|
GroupBy | 항목 시퀀스를 그룹으로 구성하고 IGrouping <key, element> 형식의 IEnumerable 컬렉션으로 반환합니다. | 그룹… 별 또는 그룹 별… 별… | 그룹… 기준…… |
찾아보다 | 일련의 키 쌍이 반환되는 그룹화 작업 실행 | 해당 없음 | 해당 없음 |
전환
연산자는 입력 개체의 유형을 변경하고 다양한 응용 분야에서 사용됩니다.
예시보기
운영자 | 기술 | C # 쿼리 식 구문 | VB 쿼리 표현식 구문 |
---|---|---|---|
AsEnumerable | IEnumerable <T> 형식의 입력을 반환합니다. | 해당 없음 | 해당 없음 |
AsQueryable | (일반) IEnumerable은 (일반) IQueryable로 변환됩니다. | 해당 없음 | 해당 없음 |
캐스트 | 컬렉션의 요소를 지정된 형식으로 캐스팅합니다. | 명시 적으로 입력 된 범위 변수를 사용하십시오. 예 : 단어의 str 문자열에서 | …에서… |
OfType | 특정 유형으로 캐스트 할 수있는 기능에 따라을 기준으로 값을 필터링합니다. | 해당 없음 | 해당 없음 |
ToArray | 쿼리 실행을 강제하고 컬렉션을 배열로 변환합니다. | 해당 없음 | 해당 없음 |
ToDictionary | 키 선택기 함수를 기반으로 요소를 Dictionary <TKey, TValue>로 설정하고 LINQ 쿼리를 강제 실행합니다. | 해당 없음 | 해당 없음 |
목록으로 | 컬렉션을 List <T>로 변환하여 쿼리를 강제 실행합니다. | 해당 없음 | 해당 없음 |
찾아보다 | 쿼리를 강제 실행하고 키 선택기 함수를 기반으로 Lookup <TKey, TElement>에 요소를 넣습니다. | 해당 없음 | 해당 없음 |
연쇄
두 시퀀스의 연결을 수행하며 중복을 제거하지 않는다는 점을 제외하면 작업 측면에서 Union 연산자와 매우 유사합니다.
예시보기
운영자 | 기술 | C # 쿼리 식 구문 | VB 쿼리 표현식 구문 |
---|---|---|---|
Concat | 하나의 시퀀스를 형성하기 위해 두 개의 시퀀스가 연결됩니다. | 해당 없음 | 해당 없음 |
집합
원하는 집계 유형을 수행하고 LINQ에서 사용자 지정 집계를 만들 수 있습니다.
예시보기
운영자 | 기술 | C # 쿼리 식 구문 | VB 쿼리 표현식 구문 |
---|---|---|---|
골재 | 컬렉션의 값에 대해 작동하여 사용자 지정 집계 작업을 수행합니다. | 해당 없음 | 해당 없음 |
평균 | 값 모음의 평균 값이 계산됩니다. | 해당 없음 | Aggregate… In… Into Average () |
카운트 | 컬렉션 내에서 조건 자 함수를 충족하는 요소를 계산합니다. | 해당 없음 | Aggregate… In… Into Count () |
LonCount | 거대한 컬렉션 내에서 조건 자 함수를 충족하는 요소를 계산합니다. | 해당 없음 | Aggregate… In… Into LongCount () |
최대 | 컬렉션 내 최대 가치 찾기 | 해당 없음 | Aggregate… In… Into Max () |
최소 | 컬렉션에 존재하는 최소값 찾기 | 해당 없음 | Aggregate… In… Into Min () |
합집합 | 컬렉션 내 값의 합계 찾기 | 해당 없음 | Aggregate… In… Into Sum () |
수량 자 작업
이러한 연산자는 시퀀스 내의 일부 또는 모든 요소가 특정 조건을 충족하는 경우 부울 값, 즉 True 또는 False를 반환합니다.
예시보기
운영자 | 기술 | C # 쿼리 식 구문 | VB 쿼리 표현식 구문 |
---|---|---|---|
모두 | 시퀀스의 모든 요소가 술어 조건을 충족하는 경우 'True'값을 리턴합니다. | 해당 없음 | 집계… In… Into All (…) |
어떤 | 동일한 요소가 지정된 조건을 만족하는지 시퀀스를 검색하여 결정합니다. | 해당 없음 | Aggregate… In… Into Any () |
포함 | 시퀀스에 특정 요소가 포함되어 있지 않은 경우 시퀀스에 특정 요소가 있음을 발견하면 'True'값을 반환하고 'false'값을 반환합니다. | 해당 없음 | 해당 없음 |
파티션 연산자
시퀀스의 요소를 재배 열한 다음 그중 하나를 반환하지 않고 입력 시퀀스를 두 개의 개별 섹션으로 나눕니다.
예시보기
운영자 | 기술 | C # 쿼리 식 구문 | VB 쿼리 표현식 구문 |
---|---|---|---|
건너 뛰기 | 시퀀스 내에서 지정된 수의 요소를 건너 뛰고 나머지 요소를 반환합니다. | 해당 없음 | 건너 뛰기 |
SkipWhile | 건너 뛸 요소의 수가 부울 조건에 의해 지정된다는 점을 제외하고 건너 뛰기와 동일합니다. | 해당 없음 | 동안 건너 뛰기 |
취하다 | 시퀀스에서 지정된 수의 요소를 가져오고 나머지 요소는 건너 뜁니다. | 해당 없음 | 취하다 |
TakeWhile | 취할 요소의 수가 부울 조건에 의해 지정된다는 점을 제외하고 Take와 동일 | 해당 없음 | 잠시 |
세대 운영
새로운 값 시퀀스는 세대 연산자에 의해 생성됩니다.
예시보기
운영자 | 기술 | C # 쿼리 식 구문 | VB 쿼리 표현식 구문 |
---|---|---|---|
DefaultIfEmpty | 빈 시퀀스에 적용하면 시퀀스 내에 기본 요소를 생성합니다. | 해당 없음 | 해당 없음 |
빈 | 빈 시퀀스 값을 반환하며 가장 간단한 세대 연산자입니다. | 해당 없음 | 해당 없음 |
범위 | 정수 또는 숫자 시퀀스가있는 컬렉션을 생성합니다. | 해당 없음 | 해당 없음 |
반복 | 특정 길이의 반복 된 값을 포함하는 시퀀스를 생성합니다. | 해당 없음 | 해당 없음 |
작업 설정
집합 연산에는 4 개의 연산자가 있으며 각각 다른 기준에 따라 결과를 산출합니다.
예시보기
운영자 | 기술 | C # 쿼리 식 구문 | VB 쿼리 표현식 구문 |
---|---|---|---|
뚜렷한 | 중복 데이터가있는 경우 필터링하여 컬렉션에서 고유 한 값 목록을 생성합니다. | 해당 없음 | 뚜렷한 |
외 | 두 컬렉션의 값을 비교하고 다른 컬렉션에없는 한 컬렉션의 값을 반환합니다. | 해당 없음 | 해당 없음 |
교차 | 두 개의 개별 컬렉션에서 동일하지 않은 값 집합을 반환합니다. | 해당 없음 | 해당 없음 |
노동 조합 | 서로 다른 두 컬렉션의 콘텐츠를 중복 콘텐츠없이 단일 목록으로 결합 | 해당 없음 | 해당 없음 |
평등
두 문장 (열거 가능)을 비교하여 정확히 일치하는지 여부를 결정합니다.
예시보기
운영자 | 기술 | C # 쿼리 식 구문 | VB 쿼리 표현식 구문 |
---|---|---|---|
SequenceEqual | 두 시퀀스가 서로 동일한 것으로 확인되면 부울 값이 생성됩니다. | 해당 없음 | 해당 없음 |
요소 연산자
DefaultIfEmpty를 제외하고 나머지 8 개의 표준 쿼리 요소 연산자는 모두 컬렉션에서 단일 요소를 반환합니다.
예시보기
운영자 | 기술 | C # 쿼리 식 구문 | VB 쿼리 표현식 구문 |
---|---|---|---|
ElementAt | 컬렉션의 특정 인덱스 내에있는 요소를 반환합니다. | 해당 없음 | 해당 없음 |
ElementAtOrDefault | 특정 인덱스가 범위를 벗어난 경우 기본값을 반환한다는 점을 제외하면 ElementAt과 동일합니다. | 해당 없음 | 해당 없음 |
먼저 | 컬렉션 내의 첫 번째 요소 또는 특정 조건을 충족하는 첫 번째 요소를 검색합니다. | 해당 없음 | 해당 없음 |
FirstOrDefault | 이러한 요소가없는 경우 기본값도 반환한다는 점을 제외하면 First와 동일합니다. | 해당 없음 | 해당 없음 |
마지막 | 컬렉션에있는 마지막 요소 또는 특정 조건을 충족하는 마지막 요소를 검색합니다. | 해당 없음 | 해당 없음 |
LastOrDefault | Last와 동일하지만 이러한 요소가없는 경우에도 기본값을 반환한다는 점이 다릅니다. | 해당 없음 | 해당 없음 |
단일 | 컬렉션의 고독한 요소 또는 특정 조건을 충족하는 고독한 요소를 반환합니다. | 해당 없음 | 해당 없음 |
SingleOrDefault | 단일 요소가없는 경우 기본값을 반환한다는 점을 제외하면 Single과 동일합니다. | 해당 없음 | 해당 없음 |
DefaultIfEmpty | 컬렉션 또는 목록이 비어 있거나 null 인 경우 기본값을 반환합니다. | 해당 없음 | 해당 없음 |