Video: C# Tutorial 15 LINQ Tutorial 2025
John T. Paul Mueller
Ngôn ngữ truy vấn tổng hợp (LINQ) là một tính năng của. NET Framework mở rộng nắm bắt của bạn vượt ra ngoài những điều Microsoft. Bạn có thể sử dụng LINQ để truy vấn chỉ là về bất cứ điều gì bằng cách biết các nhà khai thác thiết yếu cùng với một vài nhà khai thác truy vấn bổ sung. Nếu bạn bị lạc lối một chút, Microsoft cung cấp nhiều tài nguyên thông qua mạng, blog và diễn đàn.
Các nhà khai thác LINQ thiết yếu
Truy vấn Ngôn ngữ Thuần (LINQ) sử dụng một toán tử tuyệt vời. Một nhà điều hành là một từ đặc biệt cho LINQ loại truy vấn nào cần thực hiện, chẳng hạn như kiểm tra hai giá trị có bằng nhau. Các nhà khai thác có thể chạy vào hàng trăm, nhưng trong hầu hết các trường hợp, bạn sẽ thực hiện phần lớn các nhiệm vụ chỉ sử dụng một số nhà khai thác tiêu chuẩn. Dưới đây là danh sách các nhà khai thác LINQ thiết yếu.
Nhà điều hành | Mô tả |
---|---|
từ | Xác định đối tượng tạm thời được sử dụng để thực hiện truy vấn. Hãy nghĩ đến
toán tử này như là xác định đối tượng phần tử riêng mà từ đó bạn lấy được tất cả các dữ liệu khác cho truy vấn. Ví dụ: bạn chọn dữ liệu nào sẽ xuất hiện trong đầu ra và cách dữ liệu đó được đặt hàng dựa trên biến tạm thời. Toán tử là toán tử duy nhất phải xuất hiện trong mọi truy vấn bạn tạo . |
trong | Xác định nguồn dữ liệu được sử dụng để lấy dữ liệu. Nguồn dữ liệu
có thể là bất kỳ đối tượng nào được hỗ trợ bởi nhà cung cấp dữ liệu. Nhà cung cấp tạo ra một kết nối giữa nguồn dữ liệu và truy vấn LINQ. Ví dụ: một nguồn dữ liệu có thể bao gồm một đối tượng như hộp danh sách , tệp tin XML, bảng SQL Server, Active Directory, dịch vụ Web hoặc bất cứ thứ gì bạn muốn sử dụng thu thập thông tin . Nó thậm chí có thể làm việc trực tiếp với các tập tin trên ổ đĩa cứng của bạn bằng cách sử dụng một truy vấn LINQ. Một truy vấn có thể chứa nhiều cặp từ và trong các toán tử như cần thiết để mô tả đầy đủ nguồn dữ liệu được sử dụng trong truy vấn. |
chọn | Chọn thông tin đầu ra cho truy vấn. Đầu ra đơn giản nhất
là cùng một đối tượng mà bạn xác định bằng toán tử from. Tuy nhiên, toán tử chọn có thể bao gồm các giá trị đã được tính toán, mảng dữ liệu hoặc các thuộc tính đối tượng riêng lẻ. Hạn chế trong hầu hết các trường hợp là các chức năng được cung cấp bởi nhà cung cấp LINQ . Tất cả bốn nhà cung cấp mặc định bao gồm phạm vi hoàn chỉnh các hành vi chọn nhà điều hành. Truy vấn chỉ chứa một toán tử lựa chọn và toán tử này phải xuất hiện như là toán tử cuối cùng trong truy vấn . |
nơi | Mô tả các điều kiện theo đó một phần tử xuất hiện như một phần
của đầu ra.Toán tử where luôn yêu cầu một đối số Boolean để xác định các điều kiện đầu ra. Bạn có thể bao gồm nhiều nơi mà các nhà khai thác như cần thiết để mô tả đầy đủ các tiêu chí đầu ra. LINQ giải thích nơi mà các toán tử theo thứ tự trong đó chúng xuất hiện trong truy vấn, vì vậy thứ tự là quan trọng. Khi truy vấn không hoạt động như dự kiến, hãy thử thay đổi thứ tự nơi mà các toán tử mô tả tốt hơn các yêu cầu đầu ra . Sử dụng trình gỡ lỗi để giúp xác định vị trí lỗi trong luồng hợp lý của các toán tử. |
orderby | Xác định trình tự xuất hiện các yếu tố đầu ra. Toán tử đơn hàng
dựa vào đối tượng mà bạn định nghĩa bằng cách sử dụng toán tử . Tuy nhiên, một toán tử orderby có thể chấp nhận bất kỳ câu lệnh nào định nghĩa một đối số đặt hàng lôgíc như đầu vào - thường là số, chữ cái, ký hiệu, hoặc nhị phân. Bạn có thể sử dụng như nhiều toán tử orderby như cần thiết để mô tả đầy đủ thứ tự xuất phát của dữ liệu. Giống với toán tử ở đâu, LINQ diễn giải toán tử orderby theo thứ tự mà nó xuất hiện trong truy vấn. Do đó, thứ tự của các toán tử orderby là quan trọng. |
tham gia và trên | Kết hợp hai hoặc nhiều nguồn dữ liệu để tạo ra một chế độ xem tổng hợp
dữ liệu. Các nguồn dữ liệu không cần phải dựa vào cùng một nhà cung cấp. Bạn có thể sử dụng nhiều toán tử kết nối như để mô tả đầy đủ tất cả các nguồn dữ liệu được sử dụng cho truy vấn . Toán tử trên xác định tiêu chí được sử dụng để kết hợp hai nguồn dữ liệu. Ghép nối các toán tử kết nối và trên để tạo ra một nguồn dữ liệu hoàn chỉnh. |
cho | Tạo một giá trị đã được tính toán để sử dụng trong truy vấn. Các giá trị
được tính toán tạo các truy vấn phức tạp dễ dàng hơn để xây dựng. Ngoài ra, bạn có thể vượt qua một giá trị được tính toán vào người gọi để cung cấp thêm thông tin đầu ra. Trong nhiều trường hợp, toán tử let cung cấp phương tiện truyền dữ liệu mà LINQ sẽ không truyền thông thường do xung đột đặt tên. Bạn có thể sử dụng nhiều toán tử cho phép cung cấp chức năng truy vấn đầy đủ, nhưng bạn nên hạn chế sử dụng để cho các tình huống mà giá trị được tính tăng tốc độ truy vấn. |
Dưới đây là danh sách các nhóm điều hành truy vấn chuẩn và nơi bạn có thể tìm thêm thông tin.
Các toán tửCác thông tin bổ sung
Hoạt động tổng hợp | Các toán tử tổng hợp tất cả đều giúp bạn thực hiện các nhiệm vụ toán học | bằng nguồn dữ liệu. | Mạng lưới nhà phát triển của Microsoft |
---|---|---|---|
: Hoạt động tổng hợp | Hoạt động nối
Nhà khai thác nối đơn duy nhất cho phép bạn kết hợp hai chuỗi |
. | Microsoft
Mạng Nhà phát triển: Hoạt động nối |
Chuyển đổi các loại dữ liệu | Việc chuyển đổi các kiểu dữ liệu có hai dạng: trì hoãn và
không được yêu cầu. Các toán tử chuyển đổi hoãn lại chuyển đổi kết quả |
của một truy vấn sang một loại cụ thể vì mã diễn dịch kết quả | . Các toán tử chuyển đổi không được hoán đổi thay đổi đầu ra của truy vấn
sang một loại cụ thể. |
Mạng lưới nhà phát triển của Microsoft | : Chuyển đổi các loại dữ liệu
Các hoạt động của phần tử Các toán tử phần tử giúp đỡ AsEnumerable, AsQueryable, Cast, OfType, ToArray, ToDictionary, ToList, bạn chọn một phần tử cụ thể trong dãy |
, ngay cả khi bạn không biết bất kỳ thông tin nhận dạng
nào về phần tử đó, chẳng hạn như tên của nó. Mạng lưới nhà phát triển của Microsoft |
: Các hoạt động của phần
Các hoạt động bình đẳng |
Nhà điều hành bình đẳng duy nhất giúp bạn xác định liệu có phải là | ElementAt, ElementAtOrDefault, First, FirstOrDefault, Last,
hai trình tự đều (số lượng các phần tử và nội dung của mỗi phần tử |
là bằng nhau).
Mạng lưới nhà phát triển của Microsoft |
Mạng Nhà phát triển: Hoạt động Bình đẳng |
Lọc dữ liệu | Các toán tử lọc giúp bạn loại trừ hoặc bao gồm các phần tử trong
một chuỗi dựa trên các tiêu chí cụ thể. OfType và Where |
Microsoft | Mạng Nhà phát triển: Lọc dữ liệu
Các hoạt động tạo ra |
Các nhà khai thác thế hệ tạo một chuỗi mới dựa trên các tiêu chí | mà bạn chỉ định.
Lặp lại |
Microsoft | Mạng Nhà phát triển: Hoạt động của Thế hệ
Phân nhóm dữ liệu |
Các toán tử nhóm giúp bạn sắp xếp dữ liệu theo đặc trưng | cụ thể, chẳng hạn như
Lỗi lặp lại. như là chữ cái đầu tiên trong một nhóm các chuỗi |
.
Mạng của nhà phát triển Microsoft: |
Kết hợp hoạt động
Các toán tử gia nhập chấp nhận hai hoặc nhiều chuỗi như đầu vào và |
tạo ra một chuỗi đầu ra duy nhất dựa trên một tham gia cụ thể gõ và | tiêu chí tham gia.
Tham gia và NhómJoin Microsoft |
Mạng Nhà phát triển: Tham gia Hoạt động | Phân vùng dữ liệu
Các toán tử phân vùng giúp bạn sắp xếp một dãy |
xác định vị trí thông tin cụ thể. | Mạng lưới nhà phát triển của Microsoft
: Dữ liệu phân vùng Các hoạt động chiếu |
Các nhà khai thác chiếu tạo một loại mới dựa trên truy vấn | mà bạn tạo ra.
Chọn và ChọnMany |
Microsoft | Mạng Nhà phát triển: Các hoạt động chiếu
Hoạt động định lượng |
Các toán tử lượng tử giúp bạn chọn các phần tử dựa trên
các tiêu chí cụ thể. Bạn sử dụng các toán tử này để xác định xem |
không, một hoặc nhiều hơn một yếu tố đáp ứng các tiêu chí đã chọn
. |
Tất cả, Bất kỳ, | và Chứa
Microsoft |
Mạng Nhà phát triển: Hoạt động định lượng | Đặt hoạt động
Các toán tử đặt tạo tập hợp. Hãy suy nghĩ về các số học bạn thực hiện |
được thực hiện ở trường. | Phân loại, Trừ, Giao nhau,
và Liên minh Microsoft Mạng Nhà phát triển: Đặt Hoạt động |
Phân loại dữ liệu
Các toán tử sắp xếp giúp bạn đặt một dãy vào một trật tự |
cụ thể.
Microsoft |
Mạng Nhà phát triển: Sắp xếp Dữ liệu | Microsoft LINQ Resources
Bạn luôn cần biết nơi bạn có thể truy cập thông tin và công cụ bổ sung khi tạo các ứng dụng Query Language Integrated Query (LINQ) của bạn. Dưới đây là danh sách các tài nguyên Microsoft hữu ích cho LINQ. |
Mạng nhà phát triển của Microsoft
Mạng Nhà phát triển Microsoft (MSDN) luôn cung cấp tài liệu cơ bản cho tất cả các sản phẩm phát triển của Microsoft. Bạn sẽ tìm thấy một kho chứa đầy thông tin ở đó - nhiều hơn bất kỳ con người nào có thể đọc trong cuộc đời. Do đó, bạn cần phải sàng lọc các thông tin cẩn thận hoặc bạn sẽ nhanh chóng bị mất trong mê cung MSDN. Trang MSDN chính để làm việc với LINQ cung cấp cho bạn tin tức, tài nguyên và truy cập vào các thông tin khác như mẫu. |
Microsoft blog
Microsoft muốn bạn biết cách làm việc với LINQ. Trong quá khứ, bạn sẽ tìm thấy nhiều thông tin bạn cần trên MSDN. Trang web của MSDN vẫn là một nơi tốt để đi, nhưng nhiều nhà phát triển của Microsoft phàn nàn rằng nó đã quá trang trọng (các bài viết khá khó hiểu trong một số trường hợp) và không có cơ hội để tương tác với tác giả. Các blog của Microsoft cung cấp môi trường thân thiện để có được thông tin mà bạn thực sự có thể tương ứng với tác giả. Dưới đây là một vài blog bạn sẽ muốn ghé thăm khi làm việc với LINQ: |
Beth Massi: Chia sẻ điều tốt lành đó là Visual Basic (VB) | Blog Cộng đồng Charlie Calvert
BLOG Wriju:. NET và Tất cả mọi thứ |
Hầu hết các blog này là chung chung - tất cả đều thảo luận về các vấn đề lập trình của một số loại. Do đó, bạn sẽ tìm thấy một hỗn hợp các chủ đề trong mỗi blog. Tác giả có thể thảo luận về hệ thống tập tin trong một bài viết và LINQ về một hệ thống khác. Mỗi mục có mục nhập cụ thể LINQ mà bạn có thể tìm kiếm bằng cách sử dụng các tính năng tìm kiếm trên blog. Mặc dù Charlie Calvert đã rời khỏi Microsoft, blog của ông chứa đựng rất nhiều thông tin chung về LINQ. | Các diễn đàn của Microsoft
Nếu bạn không nghĩ rằng bạn đang có đủ tương tác với Microsoft thông qua blog, nhân viên của Microsoft cũng thường xuyên ghé thăm diễn đàn của Microsoft. Tải lên một tin nhắn đến diễn đàn chính xác có thể giúp bạn một số sự trợ giúp chuyên nghiệp hoặc ít nhất một số trợ giúp có kiến thức từ một thành viên diễn đàn khác. Hầu hết các nhà phát triển dựa vào các diễn đàn MSDN cho các câu hỏi cơ bản về LINQ. Bạn có thể xem danh sách chung các diễn đàn tại cộng đồng Microsoft. Đừng quên thử diễn đàn ngôn ngữ cụ thể cho Visual Basic. MẠNG LƯỚI. |