Từ khoá truy vấn trong LINQ (Query Keywords)

Bảng liệt kê các từ khóa sử dụng trong biểu thức truy vấn trong.

FROM : Chỉ định một nguồn dữ liệu và biến một phạm vi (tương tự như một biến lặp đi lặp lại).

WHERE : Bộ lọc các yếu tố nguồn dựa trên một hoặc nhiều biểu thức Boolean cách nhau bởi logic AND và OR điều hành (&& hoặc | |).

SELECT : Chỉ định kiểu và hình dạng mà các phần tử trong chuỗi trở về sẽ có khi truy vấn được thực hiện.

GROUP : Nhóm kết quả truy vấn theo một giá trị chính quy định.

INTO : Cung cấp một định danh có thể phục vụ như là một tham chiếu đến các kết quả của một nhóm tham gia, hoặc điều khoản lựa chọn.

ORDERBY : Phân loại các kết quả truy vấn trong tăng hay giảm dựa trên Comparer mặc định cho các loại nguyên tố.

JOIN : tham gia của hai nguồn dữ liệu dựa trên sự so sánh bình đẳng giữa hai tiêu chuẩn quy định phù hợp.

LET : giới thiệu một loạt biến để lưu trữ phụ biểu kết quả trong một biểu thức truy vấn.

IN : theo ngữ cảnh từ khoá trong một gia khoản.

ON : theo ngữ cảnh từ khoá trong một gia khoản.

EQUALS : theo ngữ cảnh từ khoá trong một gia khoản.

BY: theo ngữ cảnh từ khoá trong một điều khoản nhóm.

ASCENDING : từ khóa theo ngữ cảnh trong một khoản orderby.

DESXENDING : từ khóa theo ngữ cảnh trong một khoản orderby.

Example : 

FROM : 

class LowNums
{
        static void Main()
        { 
               // A simple data source.
               int[] numbers = { 5, 4, 1, 3, 9, 8, 6, 7, 2, 0 };
               // Create the query.
               // lowNums is an IEnumerable<int>
               var lowNums = from num in numbers where num < 5 select num;


              // Execute the query.
              foreach (int i in lowNums)
              {
                     Console.Write(i + " ");
              }
       } 
}
// Output: 4 1 3 2 0

WHERE :

class WhereSample2
{
        static void Main()
       { 
               // Data source.
               int[] numbers = { 5, 4, 1, 3, 9, 8, 6, 7, 2, 0 };
               // Create the query with two predicates in where clause.
               var queryLowNums2 =  from num in numbers where num < 5 && num % 2 == 0
                     select num;
               // Execute the query
               foreach (var s in queryLowNums2)
              {
                    Console.Write(s.ToString() + " ");
              } 
      }
}
// Output: 4 2 0

GROUP :

// Query variable is an IEnumerable<IGrouping<char, Student>>
var studentQuery1 = from student in students group student by student.Last[0];

INTO :

class IntoSample1
{
         static void Main()
         {
                // Create a data source.
                string[] words = {"apples","blueberries","oranges","bananas","apricots"};
               // Create the query.
               var wordGroups1 = from w in words group w by w[0] into fruitGroup
                      where fruitGroup.Count() >= 2
                      select new { FirstLetter = fruitGroup.Key, Words = fruitGroup.Count() };
              // Execute the query. Note that we only iterate over the groups, 
              // not the items in each group
              foreach (var item in wordGroups1)
              {
                     Console.WriteLine(" {0} has {1} elements.", item.FirstLetter, item.Words);
              }

              // Keep the console window open in debug mode
              Console.WriteLine("Press any key to exit.");
              Console.ReadKey();
       }
}
/* Output:
a has 2 elements.
b has 2 elements.
*/