现在的位置: 首页 > 综合 > 正文

linq asp.net 3.x 时代

2012年04月06日 ⁄ 综合 ⁄ 共 1161字 ⁄ 字号 评论关闭

.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的内容将在下面的内容一步一步展开。

 

原文:http://tech.ddvip.com/2008-12/122872526398411_3.html

抱歉!评论已关闭.