LINQ - Toán tử truy vấn
Một tập hợp các phương thức mở rộng tạo thành một mẫu truy vấn được gọi là Toán tử Truy vấn Chuẩn LINQ. Là khối xây dựng các biểu thức truy vấn LINQ, các toán tử này cung cấp một loạt các khả năng truy vấn như lọc, sắp xếp, chiếu, tổng hợp, v.v.
Các toán tử truy vấn chuẩn LINQ có thể được phân loại thành các toán tử sau trên cơ sở chức năng của chúng.
- Toán tử lọc
- Tham gia nhà điều hành
- Phép toán chiếu
- Nhà điều hành sắp xếp
- Nhóm các nhà khai thác
- Conversions
- Concatenation
- Aggregation
- Hoạt động định lượng
- Hoạt động phân vùng
- Hoạt động tạo
- Đặt hoạt động
- Equality
- Toán tử phần tử
Toán tử lọc
Lọc là một hoạt động để hạn chế tập kết quả sao cho nó chỉ có các phần tử được chọn thỏa mãn một điều kiện cụ thể.
Hiển thị các ví dụ
Nhà điều hành | Sự miêu tả | Cú pháp biểu thức truy vấn C # | Cú pháp biểu thức truy vấn VB |
---|---|---|---|
Ở đâu | Lọc các giá trị dựa trên một hàm vị từ | Ở đâu | Ở đâu |
OfType | Lọc các giá trị dựa trên khả năng trở thành một loại được chỉ định | Không áp dụng | Không áp dụng |
Tham gia nhà điều hành
Tham gia đề cập đến một hoạt động trong đó các nguồn dữ liệu có mối quan hệ khó theo dõi với nhau theo cách trực tiếp được nhắm mục tiêu.
Hiển thị các ví dụ
Nhà điều hành | Sự miêu tả | Cú pháp biểu thức truy vấn C # | Cú pháp biểu thức truy vấn VB |
---|---|---|---|
Tham gia | Nhà điều hành nối hai chuỗi trên cơ sở các khóa phù hợp | tham gia… trong… trên… bằng… | Từ x In…, y In… Where xa = ya |
GroupJoin | Nối hai chuỗi và nhóm các phần tử phù hợp | tham gia… vào… trên… bằng… vào… | Tham gia nhóm… Trong… Trên… |
Phép toán chiếu
Phép chiếu là một phép toán trong đó một đối tượng được chuyển thành một dạng hoàn toàn mới với chỉ các thuộc tính cụ thể.
Hiển thị các ví dụ
Nhà điều hành | Sự miêu tả | Cú pháp biểu thức truy vấn C # | Cú pháp biểu thức truy vấn VB |
---|---|---|---|
Lựa chọn | Nhà điều hành dự đoán các giá trị dựa trên một hàm biến đổi | lựa chọn | Lựa chọn |
SelectMany | Nhà điều hành chiếu các chuỗi giá trị dựa trên một hàm biến đổi cũng như làm phẳng chúng thành một chuỗi duy nhất | Sử dụng nhiều từ mệnh đề | Sử dụng nhiều mệnh đề Từ |
Nhà điều hành sắp xếp
Thao tác sắp xếp cho phép sắp xếp thứ tự các phần tử của một chuỗi trên cơ sở một hoặc nhiều thuộc tính.
Hiển thị các ví dụ
Nhà điều hành | Sự miêu tả | Cú pháp biểu thức truy vấn C # | Cú pháp biểu thức truy vấn VB |
---|---|---|---|
Đặt bởi | Toán tử sắp xếp các giá trị theo thứ tự tăng dần | đặt bởi | Đặt bởi |
OrderByDescending | Toán tử sắp xếp các giá trị theo thứ tự giảm dần | trật tự ... giảm dần | Đặt hàng theo ... Giảm dần |
ThenBy | Thực hiện sắp xếp thứ cấp theo thứ tự tăng dần | đặt bởi …, … | Đặt bởi …, … |
ThenByDescending | Thực hiện sắp xếp thứ cấp theo thứ tự giảm dần | theo thứ tự…,… giảm dần | Đặt hàng theo…,… Giảm dần |
Đảo ngược | Thực hiện đảo ngược thứ tự của các phần tử trong một tập hợp | Không áp dụng | Không áp dụng |
Nhóm các nhà khai thác
Các toán tử đưa dữ liệu vào một số nhóm dựa trên một thuộc tính được chia sẻ chung.
Hiển thị các ví dụ
Nhà điều hành | Sự miêu tả | Cú pháp biểu thức truy vấn C # | Cú pháp biểu thức truy vấn VB |
---|---|---|---|
GroupBy | Sắp xếp một chuỗi các mục theo nhóm và trả lại chúng dưới dạng tập hợp IEnumerable của loại IGrouping <key, element> | nhóm… bởi -hoặc- nhóm… bởi… thành… | Nhóm… Bởi… Vào… |
Tra cứu | Thực hiện thao tác nhóm trong đó một chuỗi các cặp khóa được trả về | Không áp dụng | Không áp dụng |
Chuyển đổi
Các toán tử thay đổi loại đối tượng đầu vào và được sử dụng trong một loạt các ứng dụng.
Hiển thị các ví dụ
Nhà điều hành | Sự miêu tả | Cú pháp biểu thức truy vấn C # | Cú pháp biểu thức truy vấn VB |
---|---|---|---|
AsEnumerable | Trả về đầu vào được nhập là IEnumerable <T> | Không áp dụng | Không áp dụng |
AsQueryable | A (chung) IEnumerable được chuyển đổi thành IQueryable (chung) | Không áp dụng | Không áp dụng |
Diễn viên | Thực hiện truyền các phần tử của một bộ sưu tập sang một kiểu cụ thể | Sử dụng một biến phạm vi được nhập rõ ràng. Vd: từ chuỗi str trong các từ | Từ… Như… |
OfType | Các giá trị của bộ lọc dựa trên cơ sở của chúng, tùy thuộc vào khả năng của chúng để được truyền đến một loại cụ thể | Không áp dụng | Không áp dụng |
ToArray | Buộc thực thi truy vấn và thực hiện chuyển đổi một tập hợp thành một mảng | Không áp dụng | Không áp dụng |
ToDictionary | Trên cơ sở chức năng bộ chọn khóa, đặt các phần tử vào Từ điển <TKey, TValue> và buộc thực hiện truy vấn LINQ | Không áp dụng | Không áp dụng |
Liệt kê | Buộc thực hiện một truy vấn bằng cách chuyển đổi một tập hợp thành một Danh sách <T> | Không áp dụng | Không áp dụng |
Tra cứu | Buộc thực hiện một truy vấn và đưa các phần tử vào một Tìm kiếm <TKey, TElement> trên cơ sở một chức năng bộ chọn khóa | Không áp dụng | Không áp dụng |
Kết nối
Thực hiện nối hai chuỗi và khá giống với toán tử Union về hoạt động của nó ngoại trừ thực tế là điều này không loại bỏ các bản sao.
Hiển thị các ví dụ
Nhà điều hành | Sự miêu tả | Cú pháp biểu thức truy vấn C # | Cú pháp biểu thức truy vấn VB |
---|---|---|---|
Concat | Hai trình tự được nối để tạo thành một trình tự duy nhất. | Không áp dụng | Không áp dụng |
Tổng hợp
Thực hiện bất kỳ loại tổng hợp mong muốn nào và cho phép tạo các tập hợp tùy chỉnh trong LINQ.
Hiển thị các ví dụ
Nhà điều hành | Sự miêu tả | Cú pháp biểu thức truy vấn C # | Cú pháp biểu thức truy vấn VB |
---|---|---|---|
Tổng hợp | Hoạt động trên các giá trị của một tập hợp để thực hiện thao tác tổng hợp tùy chỉnh | Không áp dụng | Không áp dụng |
Trung bình cộng | Giá trị trung bình của một tập hợp các giá trị được tính | Không áp dụng | Tổng hợp… Trong… Thành Trung bình () |
Đếm | Đếm các phần tử đáp ứng một chức năng vị từ trong tập hợp | Không áp dụng | Tổng hợp… Trong… Into Count () |
LonCount | Đếm các phần tử đáp ứng một chức năng vị từ trong một tập hợp lớn | Không áp dụng | Tổng hợp… Trong… Into LongCount () |
Max | Tìm ra giá trị lớn nhất trong một bộ sưu tập | Không áp dụng | Tổng hợp… Trong… Vào Max () |
Min | Tìm ra giá trị tối thiểu hiện có trong bộ sưu tập | Không áp dụng | Tổng hợp… Trong… Vào Min () |
Tổng | Tìm ra tổng giá trị trong một tập hợp | Không áp dụng | Tổng hợp… Trong… Thành Tổng () |
Hoạt động định lượng
Các toán tử này trả về giá trị Boolean tức là Đúng hoặc Sai khi một số hoặc tất cả các phần tử trong một dãy thỏa mãn một điều kiện cụ thể.
Hiển thị các ví dụ
Nhà điều hành | Sự miêu tả | Cú pháp biểu thức truy vấn C # | Cú pháp biểu thức truy vấn VB |
---|---|---|---|
Tất cả | Trả về giá trị 'True' nếu tất cả các phần tử của một chuỗi thỏa mãn điều kiện vị từ | Không áp dụng | Tổng hợp… Trong… Thành tất cả (…) |
Bất kì | Xác định bằng cách tìm kiếm một dãy xem liệu bất kỳ phần tử nào của cùng một thỏa mãn một điều kiện cụ thể | Không áp dụng | Tổng hợp… Trong… Thành bất kỳ () |
Chứa đựng | Trả về giá trị 'Đúng' nếu phát hiện thấy có một phần tử cụ thể trong một chuỗi nếu chuỗi không chứa phần tử cụ thể đó, giá trị 'false' được trả về | Không áp dụng | Không áp dụng |
Nhà điều hành phân vùng
Chia một chuỗi đầu vào thành hai phần riêng biệt mà không cần sắp xếp lại các phần tử của chuỗi và sau đó trả về một trong số chúng.
Hiển thị các ví dụ
Nhà điều hành | Sự miêu tả | Cú pháp biểu thức truy vấn C # | Cú pháp biểu thức truy vấn VB |
---|---|---|---|
Nhảy | Bỏ qua một số phần tử được chỉ định trong một chuỗi và trả về những phần tử còn lại | Không áp dụng | Nhảy |
SkipWhile | Giống như Skip với ngoại lệ duy nhất là số phần tử cần bỏ qua được chỉ định bởi điều kiện Boolean | Không áp dụng | Bỏ qua trong khi |
Lấy | Lấy một số phần tử cụ thể từ một chuỗi và bỏ qua những phần tử còn lại | Không áp dụng | Lấy |
TakeWhile | Giống như Take ngoại trừ thực tế là số phần tử cần lấy được chỉ định bởi điều kiện Boolean | Không áp dụng | Đi trong khi |
Hoạt động tạo
Một chuỗi giá trị mới được tạo bởi các toán tử thế hệ.
Hiển thị các ví dụ
Nhà điều hành | Sự miêu tả | Cú pháp biểu thức truy vấn C # | Cú pháp biểu thức truy vấn VB |
---|---|---|---|
DefaultIfEmpty | Khi áp dụng cho một chuỗi trống, hãy tạo một phần tử mặc định trong một chuỗi | Không áp dụng | Không áp dụng |
Trống | Trả về một chuỗi giá trị trống và là toán tử thế hệ đơn giản nhất | Không áp dụng | Không áp dụng |
Phạm vi | Tạo một tập hợp có một chuỗi số nguyên hoặc số | Không áp dụng | Không áp dụng |
Nói lại | Tạo một chuỗi chứa các giá trị lặp lại có độ dài cụ thể | Không áp dụng | Không áp dụng |
Đặt hoạt động
Có bốn toán tử cho các hoạt động tập hợp, mỗi toán tử cho ra một kết quả dựa trên các tiêu chí khác nhau.
Hiển thị các ví dụ
Nhà điều hành | Sự miêu tả | Cú pháp biểu thức truy vấn C # | Cú pháp biểu thức truy vấn VB |
---|---|---|---|
Khác biệt | Kết quả một danh sách các giá trị duy nhất từ một bộ sưu tập bằng cách lọc dữ liệu trùng lặp nếu có | Không áp dụng | Khác biệt |
Ngoại trừ | So sánh các giá trị của hai bộ sưu tập và trả về các giá trị từ một bộ sưu tập không có trong bộ sưu tập kia | Không áp dụng | Không áp dụng |
Giao nhau | Trả về tập hợp các giá trị được tìm thấy t giống nhau trong hai tập hợp riêng biệt | Không áp dụng | Không áp dụng |
liên hiệp | Kết hợp nội dung của hai bộ sưu tập khác nhau thành một danh sách duy nhất mà không có bất kỳ nội dung trùng lặp nào | Không áp dụng | Không áp dụng |
Bình đẳng
So sánh hai câu (có thể liệt kê) và xác định xem chúng có khớp chính xác hay không.
Hiển thị các ví dụ
Nhà điều hành | Sự miêu tả | Cú pháp biểu thức truy vấn C # | Cú pháp biểu thức truy vấn VB |
---|---|---|---|
SequenceEqual | Kết quả là một giá trị Boolean nếu hai chuỗi được tìm thấy giống hệt nhau | Không áp dụng | Không áp dụng |
Toán tử phần tử
Ngoại trừ DefaultIfEmpty, tất cả tám toán tử phần tử truy vấn tiêu chuẩn còn lại trả về một phần tử duy nhất từ một tập hợp.
Hiển thị các ví dụ
Nhà điều hành | Sự miêu tả | Cú pháp biểu thức truy vấn C # | Cú pháp biểu thức truy vấn VB |
---|---|---|---|
ElementAt | Trả về một phần tử có trong một chỉ mục cụ thể trong một tập hợp | Không áp dụng | Không áp dụng |
ElementAtOrDefault | Tương tự như ElementAt ngoại trừ thực tế là nó cũng trả về giá trị mặc định trong trường hợp chỉ mục cụ thể nằm ngoài phạm vi | Không áp dụng | Không áp dụng |
Đầu tiên | Truy xuất phần tử đầu tiên trong một tập hợp hoặc phần tử đầu tiên thỏa mãn một điều kiện cụ thể | Không áp dụng | Không áp dụng |
FirstOrDefault | Tương tự như First ngoại trừ thực tế là nó cũng trả về giá trị mặc định trong trường hợp không có sự tồn tại của các phần tử như vậy | Không áp dụng | Không áp dụng |
Cuối cùng | Truy xuất phần tử cuối cùng có trong một tập hợp hoặc phần tử cuối cùng thỏa mãn một điều kiện cụ thể | Không áp dụng | Không áp dụng |
LastOrDefault | Tương tự như Last ngoại trừ thực tế là nó cũng trả về giá trị mặc định trong trường hợp không có bất kỳ phần tử nào như vậy | Không áp dụng | Không áp dụng |
Độc thân | Trả về phần tử duy nhất của một tập hợp hoặc phần tử duy nhất thỏa mãn một điều kiện nhất định | Không áp dụng | Không áp dụng |
SingleOrDefault | Tương tự như Single ngoại trừ nó cũng trả về giá trị mặc định nếu không có bất kỳ phần tử đơn lẻ nào như vậy | Không áp dụng | Không áp dụng |
DefaultIfEmpty | Trả về giá trị mặc định nếu bộ sưu tập hoặc danh sách trống hoặc rỗng | Không áp dụng | Không áp dụng |