The filter is a Boolean expression. It is common to use the range vari dịch - The filter is a Boolean expression. It is common to use the range vari Việt làm thế nào để nói

The filter is a Boolean expression.

The filter is a Boolean expression. It is common to use the range variable in a where clause to filter the objects in the data source. Because customer in this example is of type Customer, you use one of its properties, in this case FirstName, to apply the filter for your query. Of course, you may use any Boolean expression as your filter. For instance, you can invoke the String.StartsWith() method to filter customers by the first letter of their last name:
where customer.LastName.StartsWith("G") You can also use composite expressions to construct more complex queries. In addition, you can use nested queries where the result of one query (the inner query) is used to filter another query (the outer query).
Projection (or select) The last part of a LINQ query is the select clause (known to database geeks as the “projection”), which defines (or projects) the results:
select customer; In this example, the query returns the customer objects that satisfy the query condition. You may constrain which fields you project, much as you would with SQL. For instance, you can return only the qualified customers’ email addresses only:
select customer.EmailAddress;
Deferred Query Evaluation LINQ implements deferred query evaluation, meaning that the declaration and initialization of a query expression do not actually execute the query. Instead, a LINQ query is executed, or evaluated, when you iterate through the query result:
foreach (Customer customer in result) Console.WriteLine(customer.ToString()); Because the query returns a collection of Customer objects, the iteration variable is an instance of the Customer class. You can use it as you would any Customer object. This example simply calls each Customer object’s ToString() method to output its property values to the console. Each time you iterate through this foreach loop, the query will be reevaluated. If the data source has changed between executions, the result will be different. This is demonstrated in the next code section:
customers[3].FirstName = "Donna"; Here, you modify the first name of the customer “Janet Gates” to “Donna” and then iterate through the result again:
Console.WriteLine("FirstName == "Donna" (take two)");
foreach (Customer customer in result) Console.WriteLine(customer.ToString()); As shown in the sample output, you can see that the result now includes Donna Gates as well. In most situations, deferred query evaluation is desired because you want to obtain the most recent data in the data source each time you run the query. However, if you want to cache the result so that it can be processed later without having to reexecute the query, you can call either the ToList() or the ToArray() method to save a copy of the result. Example 13-2 demonstrates this technique as well.
Example 13-2. A simple LINQ query with cached results
using System; using System.Collections.Generic; using System.Linq; namespace Programming_CSharp { // Simple customer class public class Customer { // Same as in Example 13-1 }
// Main program public class Tester { static void Main() { List customers = CreateCustomerList();
// Find customer by first name IEnumerable result = from customer in customers where customer.FirstName == "Donna" select customer; List cachedResult = result.ToList();
Console.WriteLine("FirstName == "Donna""); foreach (Customer customer in cachedResult) Console.WriteLine(customer.ToString());
customers[3].FirstName = "Donna"; Console.WriteLine("FirstName == "Donna" (take two)"); foreach (Customer customer in cachedResult) Console.WriteLine(customer.ToString()); }
// Create a customer list with sample data private static List CreateCustomerList() { // Same as in Example 13-1 
Example 13-2. A simple LINQ query with cached results (continued)
In this example, you call the ToList method of the result collection to cache the result. Note that calling this method causes the query to be evaluated immediately. If the data source is changed after this, the change will not be reflected in the cached result. You can see from the output that there is no Donna Gates in the result. One interesting point here is that the ToList and ToArray methods are not actually methods of IEnumerable; that is, if you look in the documentation for IEnumerable, you will not see them in the methods list. They are actually extension methods provided by LINQ. We will look at extension methods in more detail later in this chapter. If you are familiar with SQL, you will notice a striking similarity between LINQ and SQL, at least in their syntax. The only odd-one-out at this stage is that the select statement in LINQ appears at the end of LINQ quer
0/5000
Từ: -
Sang: -
Kết quả (Việt) 1: [Sao chép]
Sao chép!
Bộ lọc là một biểu thức Boolean. Người ta thường sử dụng biến phạm vi ở một nơi mà các điều khoản để lọc các đối tượng trong nguồn dữ liệu. Bởi vì các khách hàng trong ví dụ này là loại khách hàng, bạn sử dụng một trong các thuộc tính của nó, trong trường hợp này FirstName, để áp dụng bộ lọc cho truy vấn của bạn. Tất nhiên, bạn có thể sử dụng bất kỳ biểu thức Boolean như bộ lọc của bạn. Ví dụ, bạn có thể gọi phương thức String.StartsWith() để bộ lọc khách bằng chữ cái đầu của tên cuối của họ:nơi khách hàng. LastName.StartsWith("G") bạn cũng có thể sử dụng biểu thức tổng hợp để xây dựng các truy vấn phức tạp hơn. Ngoài ra, bạn có thể sử dụng lồng nhau truy vấn mà là kết quả của một truy vấn (query bên trong) được sử dụng để lọc một truy vấn (query bên ngoài).Phép chiếu (hoặc chọn) phần cuối của một truy vấn LINQ là khoản lựa chọn (gọi đến cơ sở dữ liệu geeks là "chiếu"), mà xác định (hoặc dự án) các kết quả:chọn khách hàng; Trong ví dụ này, các truy vấn trả lại khách hàng các đối tượng mà đáp ứng các điều kiện truy vấn. Bạn có thể cố định mà các lĩnh vực dự án, nhiều càng tốt, bạn sẽ cùng với SQL. Ví dụ, bạn có thể trở lại chỉ các khách hàng đủ điều kiện địa chỉ email chỉ: chọn khách hàng. EmailAddress;Chậm truy vấn đánh giá LINQ thực hiện truy vấn chậm đánh giá, có nghĩa rằng các khai báo và khởi tạo một biểu thức truy vấn không thực sự thực hiện các truy vấn. Thay vào đó, một truy vấn LINQ là thực hiện, hoặc đánh giá, khi bạn iterate qua kết quả truy vấn:foreach (khách hàng khách hàng về kết quả) Console.WriteLine (khách hàng. ToString()); Bởi vì các truy vấn trả về một bộ sưu tập của các đối tượng khách hàng, thay đổi lặp đi lặp lại là một thể hiện của lớp khách hàng. Bạn có thể sử dụng nó như bạn sẽ bất kỳ đối tượng khách hàng. Ví dụ này chỉ đơn giản gọi phương thức ToString() từng đối tượng khách hàng để đầu ra của nó giá trị tài sản để giao diện điều khiển. Mỗi lần bạn iterate qua này foreach loop, truy vấn sẽ được reevaluated. Nếu nguồn dữ liệu đã thay đổi giữa các vụ xử tử, kết quả sẽ khác nhau. Điều này được thể hiện trong phần mã tiếp theo:khách hàng [3]. FirstName = "Donna"; Ở đây, bạn thay đổi tên của khách hàng "Janet Gates" để "Donna" và sau đó lặp thông qua kết quả một lần nữa:Console.WriteLine ("FirstName == "Donna "(có hai)");foreach (khách hàng khách hàng về kết quả) Console.WriteLine (khách hàng. ToString()); Như được hiển thị ở đầu ra mẫu, bạn có thể thấy rằng kết quả bây giờ bao gồm Donna Gates là tốt. Trong hầu hết trường hợp, đánh giá các truy vấn chậm là mong muốn bởi vì bạn muốn có được các dữ liệu gần đây nhất trong nguồn dữ liệu mỗi khi bạn chạy truy vấn. Tuy nhiên, nếu bạn muốn bộ nhớ cache kết quả vì vậy mà nó có thể được xử lý sau đó mà không cần phải reexecute các truy vấn, bạn có thể gọi ToList() hoặc phương pháp ToArray() để lưu một bản sao của kết quả. Ví dụ 13-2 thể hiện kỹ thuật này.Ví dụ 13-2. Một truy vấn LINQ đơn giản với lưu trữ kết quảsử dụng hệ thống; bằng cách sử dụng System.Collections.Generic; bằng cách sử dụng System.Linq; không gian tên Programming_CSharp {/ / lớp khách hàng đơn giản khu vực lớp khách hàng {/ / tương tự như trong ví dụ 13-1} Chương trình chính công cộng lớp Tester {tĩnh void Main() {danh sách khách hàng = CreateCustomerList(); Tìm khách hàng của tên đầu tiên IEnumerable kết quả = từ khách hàng khách hàng nơi khách hàng. FirstName == "Donna" chọn khách hàng; Danh sách cachedResult = kết quả. ToList(); Console.WriteLine ("FirstName == "Donna ""); foreach (khách hàng khách hàng trong cachedResult) Console.WriteLine (khách hàng. ToString()); khách hàng [3]. FirstName = "Donna"; Console.WriteLine ("FirstName == "Donna "(có hai)"); foreach (khách hàng khách hàng trong cachedResult) Console.WriteLine (khách hàng. ToString()); } Tạo một danh sách khách hàng với dữ liệu mẫu danh sách riêng tĩnh CreateCustomerList() {/ / tương tự như trong ví dụ 13-1 Ví dụ 13-2. Một truy vấn LINQ đơn giản với lưu trữ kết quả (tiếp theo)Trong ví dụ này, bạn gọi ToList phương pháp của bộ sưu tập kết quả cache kết quả. Lưu ý rằng kêu gọi phương pháp này gây ra các truy vấn được đánh giá ngay lập tức. Nếu nguồn dữ liệu được thay đổi sau này, sự thay đổi sẽ không được phản ánh trong kết quả được lưu trữ. Bạn có thể nhìn thấy từ đầu ra rằng không có Donna Gates trong kết quả. Một điểm thú vị ở đây là ToList và ToArray phương pháp là không thực sự là phương pháp IEnumerable; nghĩa là, nếu bạn nhìn vào các tài liệu cho IEnumerable, bạn sẽ không thấy chúng trong danh sách các phương pháp. Họ có thực sự mở rộng phương pháp được cung cấp bởi LINQ. Chúng tôi sẽ xem xét phương pháp mở rộng chi tiết hơn sau này trong chương này. Nếu bạn đã quen thuộc với SQL, bạn sẽ thấy một sự tương đồng nổi bật giữa LINQ và SQL, ít trong cú pháp của họ. Số lẻ chỉ-một-out ở giai đoạn này là các tuyên bố chọn trong LINQ sẽ xuất hiện ở phần cuối của LINQ quer
đang được dịch, vui lòng đợi..
Kết quả (Việt) 2:[Sao chép]
Sao chép!
Bộ lọc này là một biểu thức Boolean. Người ta thường sử dụng các biến trong phạm vi một mệnh đề where để lọc các đối tượng trong các nguồn dữ liệu. Bởi vì khách hàng trong ví dụ này là loại khách hàng, bạn sử dụng một trong những thuộc tính của nó, trong trường hợp này FirstName, áp dụng bộ lọc cho truy vấn của bạn. Tất nhiên, bạn có thể sử dụng bất kỳ biểu thức Boolean như bộ lọc của bạn. Ví dụ, bạn có thể gọi phương thức String.StartsWith () để lọc khách hàng bằng các chữ cái đầu tiên của tên cuối cùng của họ:
nơi customer.LastName.StartsWith ( "G") Bạn cũng có thể sử dụng các biểu tổng hợp để xây dựng các truy vấn phức tạp hơn. Ngoài ra, bạn có thể sử dụng các truy vấn lồng nhau mà kết quả của một truy vấn (truy vấn bên trong) được sử dụng để lọc một truy vấn (truy vấn bên ngoài).
Chiếu (hoặc chọn) Phần cuối cùng của một truy vấn LINQ là chọn khoản (được biết đến chuyên viên máy tính cơ sở dữ liệu là "chiếu"), trong đó xác định (hoặc dự án) kết quả:
chọn của khách hàng; Trong ví dụ này, truy vấn trả về các đối tượng khách hàng đáp ứng các điều kiện truy vấn. Bạn có thể hạn chế lĩnh vực mà bạn dự án, nhiều như bạn làm với SQL. Ví dụ, bạn có thể chỉ trả lại địa chỉ email của khách hàng có chất 'chỉ:
chọn customer.EmailAddress;
hoãn lại truy vấn LINQ Đánh giá thực hiện đánh giá truy vấn chậm, có nghĩa là việc khai báo và khởi tạo của một biểu thức truy vấn không thực sự thực hiện truy vấn. Thay vào đó, một truy vấn LINQ được thực thi, hoặc được đánh giá, khi bạn lặp qua các kết quả truy vấn:
foreach (khách hàng khách hàng trong kết quả) Console.WriteLine (customer.ToString ()); Bởi vì các truy vấn trả về một bộ sưu tập của các đối tượng khách hàng, biến lặp là một thể hiện của lớp khách hàng. Bạn có thể sử dụng nó như là bạn sẽ bất kỳ đối tượng khách hàng. Ví dụ này chỉ đơn giản là gọi phương thức từng đối tượng khách hàng của ToString () để xuất ra giá trị tài sản của mình cho các giao diện điều khiển. Mỗi lần bạn lặp qua vòng lặp foreach này, truy vấn sẽ được đánh giá lại. Nếu nguồn dữ liệu đã thay đổi giữa hành quyết, kết quả sẽ khác nhau. Điều này được chứng minh trong phần mã sau:
khách hàng [3] .FirstName = "Donna"; Ở đây, bạn sửa tên đầu tiên của khách hàng "Janet Gates" để "Donna" và sau đó lặp thông qua kết quả một lần nữa:
Console.WriteLine ( "FirstName == " Donna "(mất hai)");
foreach (khách hàng Khách hàng trong kết quả) Console.WriteLine (customer.ToString ()); Như thể hiện trong các mẫu đầu ra, bạn có thể thấy rằng kết quả hiện nay bao gồm Donna Gates là tốt. Trong hầu hết các tình huống, đánh giá truy vấn chậm được mong muốn bởi vì bạn muốn để có được các dữ liệu gần đây nhất trong nguồn dữ liệu mỗi khi bạn chạy các truy vấn. Tuy nhiên, nếu bạn muốn để cache các kết quả để nó có thể được xử lý sau mà không cần phải reexecute truy vấn, bạn có thể gọi một trong hai ToList () hoặc phương pháp ToArray () để lưu một bản sao của kết quả. Ví dụ 13-2 trình bày kỹ thuật này là tốt.
Ví dụ 13-2. Một truy vấn LINQ đơn giản với bộ nhớ đệm
using System; using System; sử dụng System.Linq; namespace Programming_CSharp {// Simple lớp khách hàng public class Customer {// Tương tự như trong Ví dụ 13-1}
// Main chương trình public class Tester {static void Main () {Danh sáchkhách hàng = CreateCustomerList ();
// Tìm khách hàng bằng tên IEnumerablekết quả = từ khách hàng trong khách hàng, nơi customer.FirstName == "Donna" chọn khách hàng; Danh sách cachedResult = result.ToList();
Console.WriteLine ( "FirstName == " Donna ""); foreach (khách hàng khách hàng trong cachedResult) Console.WriteLine (customer.ToString ());
khách hàng [3] .FirstName = "Donna"; Console.WriteLine ( "FirstName == " Donna "(mất hai)"); foreach (khách hàng khách hàng trong cachedResult) Console.WriteLine (customer.ToString ()); }
// Tạo một danh sách khách hàng với dữ liệu mẫu tin Danh sách tĩnhCreateCustomerList () {// Tương tự như trong Ví dụ 13-1 
Ví dụ 13-2. Một truy vấn LINQ đơn giản với bộ nhớ đệm (tiếp theo)
Trong ví dụ này, bạn gọi ToListphương pháp thu thập kết quả để cache kết quả. Lưu ý rằng gọi phương pháp này gây ra các truy vấn được đánh giá ngay lập tức. Nếu nguồn dữ liệu được thay đổi sau này, sự thay đổi sẽ không được phản ánh trong kết quả được lưu trữ. Bạn có thể thấy từ kết quả là không có Donna Gates trong kết quả. Một điểm thú vị ở đây là các ToList và ToArrayphương pháp này là không thực sự phương pháp IEnumerable; có nghĩa là, nếu bạn nhìn vào các tài liệu cho IEnumerable, bạn sẽ không nhìn thấy chúng trong danh sách các phương pháp. Họ thực sự là phương pháp mở rộng cung cấp bởi LINQ. Chúng tôi sẽ xem xét phương pháp mở rộng chi tiết hơn ở phần sau. Nếu bạn đã quen thuộc với SQL, bạn sẽ nhận thấy một sự tương đồng nổi bật giữa LINQ và SQL, ít nhất là trong cú pháp của họ. Các chỉ lẻ-một-ra ở giai đoạn này là các câu lệnh lựa chọn trong LINQ xuất hiện ở cuối của LINQ Quer
đang được dịch, vui lòng đợi..
 
Các ngôn ngữ khác
Hỗ trợ công cụ dịch thuật: Albania, Amharic, Anh, Armenia, Azerbaijan, Ba Lan, Ba Tư, Bantu, Basque, Belarus, Bengal, Bosnia, Bulgaria, Bồ Đào Nha, Catalan, Cebuano, Chichewa, Corsi, Creole (Haiti), Croatia, Do Thái, Estonia, Filipino, Frisia, Gael Scotland, Galicia, George, Gujarat, Hausa, Hawaii, Hindi, Hmong, Hungary, Hy Lạp, Hà Lan, Hà Lan (Nam Phi), Hàn, Iceland, Igbo, Ireland, Java, Kannada, Kazakh, Khmer, Kinyarwanda, Klingon, Kurd, Kyrgyz, Latinh, Latvia, Litva, Luxembourg, Lào, Macedonia, Malagasy, Malayalam, Malta, Maori, Marathi, Myanmar, Mã Lai, Mông Cổ, Na Uy, Nepal, Nga, Nhật, Odia (Oriya), Pashto, Pháp, Phát hiện ngôn ngữ, Phần Lan, Punjab, Quốc tế ngữ, Rumani, Samoa, Serbia, Sesotho, Shona, Sindhi, Sinhala, Slovak, Slovenia, Somali, Sunda, Swahili, Séc, Tajik, Tamil, Tatar, Telugu, Thái, Thổ Nhĩ Kỳ, Thụy Điển, Tiếng Indonesia, Tiếng Ý, Trung, Trung (Phồn thể), Turkmen, Tây Ban Nha, Ukraina, Urdu, Uyghur, Uzbek, Việt, Xứ Wales, Yiddish, Yoruba, Zulu, Đan Mạch, Đức, Ả Rập, dịch ngôn ngữ.

Copyright ©2025 I Love Translation. All reserved.

E-mail: