日志文章

2007年11月27日 11:35:19

C#3.0新特性示例学习(四)--Linq to Objects

Linq(Language Integrated Query )查询语法跟SQL查询语法很相识,除了先后顺序.
//Demo
namespace TestLINQ
{
class Program
{
static void Main(string[] args)
{
  ///创建数据源
  int[] numbers = new int[7] { 0, 1, 2, 3, 4, 5, 6 };
  ///创建查询
  /// 查询会返回 IEnumerable<int> 类型,我们可以直接去获取
  /// IEnumerable<int> numQuery =
  ///   from num in numbers
  ///   where (num % 2) == 0
  ///   select num;
  /// C#3.0为我们提供了隐式声明,这里可以使用
  /// 下面这个查询的语义表示:
  /// from num :查询num 即查询出来的值赋给引用num,num无需事先声明
  /// in numbers:在numbers这个数据源中查询(数据源可以是数组,集合,数据集,XML等),这里是数组;
  /// where (num % 2) == 0:查询条件,现查询可以被2整除的数,即偶数
  /// select num:查询值
  ///如果把这句查询变成我们熟悉的SQL,那么是:select num from numbers where num%2==0
  ///这个是更容易理解些 ,如果用过HQL查询就更好了
 
  var numQuery =
    from num in numbers
    where (num % 2) == 0
    select num;
  /// 执行查询
  /// 遍历输出
  foreach (int num in numQuery)
  {
    Console.WriteLine("{0,1} ", num);
  }
}
}
}

具体,此查询执行步骤可以参见以下这张图片,
linq



总结:
  1.linq可以在数据源中进行查询,数据源可以是数组,集合,数据集,XML等。
  2.查询语法类似SQL,但是顺序不同。
  3.在遍历查询结果时,才真正执行查询。
  4.查询会返回IEnumerable<T>类型的引用。
  5.程序主要分为三步:获得数据源,创建查询,执行查询。

Tags: CSharp3.0   新特性   LINQ  

类别: DotNet |  评论(0) |  浏览(2356) |  收藏
发表评论