程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> C語言 >> 關於C語言 >> Linq學習(1) 概述(3)

Linq學習(1) 概述(3)

編輯:關於C語言

.Net 3.X時代

自動屬性、擴展方法、隱含類型、匿名類型、類型集合初識化器、Lambda表達式,有大大簡化了編程復雜度。

定義實體類:

用自動屬性。

public class Employee
{
  public string Name { get; set; }
  public int Age { get; set; }
  public string Phone { get; set; }
}

初始化集合:

list = new List<Employee>
{
  new Employee{ Name = "Zxjay", Age = 20, Phone = "010-123456" },
  new Employee{ Name = "Andy", Age = 30, Phone = "020-123456" },
  new Employee{ Name = "Bill", Age = 50, Phone = "010-345678" },
  new Employee{ Name = "Lee", Age = 40, Phone = "010-234567" }
};

排序選擇:

用Lambda表達式實現:

list.Sort((Employee x, Employee y) => { return x.Name.CompareTo(y.Name); });
var listBijing = list.FindAll(
  (Employee emp) => { return emp.Phone.StartsWith("010") && emp.Age < 50; });

輸出集合元素:

用擴展方法。

private void ShowList(List<Employee> list)
{
  Console.WriteLine("{0,-20:G}{1,-5:G}{2}", "Name", "Age", "Phone");
  list.ForEach((Employee emp) => Console.WriteLine("{0,-20:G}{1,-5:G}{2}", emp.Name, emp.Age, emp.Phone));
}

這些查詢大大簡化,但這些還是面向對象的方法。

Linq這樣實現排序選擇等操作:

var selectResult = from emp in list
where emp.Phone.StartsWith("010") && emp.Age < 50
orderby emp.Name
select emp;

這才是真正意義上的語言集成查詢,是不是似曾相識?跟SQL語句相似,只是把select字句放在最後。

本篇僅僅是對Linq的概述及語言內集合查詢機制的變化的概要介紹,Linq的內容將在下面的內容一步一步展開。

本文配套源碼

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved