Hiển thị các bài đăng có nhãn LINQ. Hiển thị tất cả bài đăng
Hiển thị các bài đăng có nhãn LINQ. Hiển thị tất cả bài đăng

Thứ Hai, 3 tháng 9, 2012

Một ví dụ mẫu đơn giản về cách sử dụng Linq to XML

  1.             XElement books = XElement.Parse(  
  2. @"<books>  
  3. <book>  
  4. <title>Pro LINQ: Language Integrated Query in C# 2010</title>  
  5. <author>Joe Rattz</author>  
  6. </book>  
  7. <book>  
  8. <title>Pro .NET 4.0 Parallel Programming in C#</title>  
  9. <author>Adam Freeman</author>  
  10. </book>  
  11. <book>  
  12. <title>Pro VB 2010 and the .NET 4.0 Platform</title>  
  13. <author>Andrew Troelsen</author>  
  14. </book>  
  15. </books>");  
  16.             var titles =  
  17.             from book in books.Elements("book")  
  18.             where (string)book.Element("author") == "Joe Rattz"  
  19.             select book.Element("title");  
  20.             foreach (var title in titles)  
  21.                 Console.WriteLine(title.Value);  
  22.             Console.ReadLine();  
  23.       

Thứ Ba, 31 tháng 7, 2012

Sử dụng LINQ để truy vấn dữ liệu trong 1 DataTable

Trước hết phải add reference System.Data.DataSetExtensions.dll để sử dụng phương thức extension AsEnumerable() cho DataTable.

Demo:
  1. // tạo 1 datatable để test  
  2. DataTable table = new DataTable("table");  
  3. table.Columns.Add(new DataColumn("Name"typeof(string)));  
  4. table.Columns.Add(new DataColumn("Age"typeof(int)));  
  5. for (int i = 0; i < 5; i++)  
  6. {  
  7.     DataRow NewRow = table.NewRow();  
  8.     NewRow["Name"] = "Nguyễn Văn " + i;  
  9.     NewRow["Age"] = i;  
  10.     table.Rows.Add(NewRow);  
  11. }  
  12.   
  13. // lấy danh sách những người có tuổi >= 3  
  14. var query = from row in table.AsEnumerable() where row.Field<int>("Age") >=3 select row;  
  15. DataTable dt = query.CopyToDataTable();  
DataTable gốc:


DataTable từ câu truy vấn:


Chủ Nhật, 22 tháng 7, 2012

Tìm kiếm trong danh sách hoặc mảng sử dụng LINQ query

Biết cách sử dụng LINQ query là một lợi thế lớn trong lập trình .NET, sử dụng nhanh chóng, cách viết câu query khá giống và quen thuộc với cách viết T-SQL.

Tìm kiếm trong danh sách:
  1. List<int> list = new List<int>();  
  2. list.Add(1);  
  3. list.Add(2);  
  4. list.Add(2);  
  5. list.Add(3);  
  6. list.Add(4);  
  7. list.Add(5);  
  8.   
  9. // lấy ra trong danh sách những phần tử >2  
  10. List<int> result = (from item in list where item > 2 select item).ToList();  
  11.   
  12. // lấy giá trị đầu tiên  
  13. int first = (from item in list where item > 2 select item).First();  
Tìm kiếm trong mảng:
  1. int[] arr = new int[] { 1, 2, 2, 3, 4, 5 };  
  2.   
  3. // lấy ra trong danh sách những phần tử >2  
  4. int[] result = (from item in arr where item > 2 select item).ToArray();  
  5.   
  6. // lấy giá trị đầu tiên  
  7. int first = (from item in arr where item > 2 select item).First();  
Một ví dụ sử dụng class:
  1. class Person  
  2. {  
  3.     public string Name { getset; }  
  4.     public int Age { getset; }  
  5.   
  6.     public Person(string name, int age)  
  7.     {  
  8.         Name = name;  
  9.         Age = age;  
  10.     }  
  11. }  
  1. List<Person> list = new List<Person>();  
  2. list.Add(new Person("Nguyễn Văn A",16));  
  3. list.Add(new Person("Nguyễn Văn B", 17));  
  4. list.Add(new Person("Nguyễn Văn C", 18));  
  5.   
  6. // tìm tuổi của Nguyễn Văn A  
  7. int age = (from person in list where person.Name == "Nguyễn Văn A" select person).First().Age;  
Chú ý: toán sử so sánh bằng vẫn là 2 dấu bằng '==' chứ không phải 1 dấu bằng như trong SQL đâu nhé.