C#中如何使用LINQ

totaitai97 2011-01-08 09:51:31
怎么使用linq 编写 一个语句 来实现sql语句, 例如:select * from student 的功能呢?
...全文
610 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
ILOVE_ASPNET 2011-03-31
  • 打赏
  • 举报
回复
[Quote=引用楼主 totaitai97 的回复:]
怎么使用linq 编写 一个语句 来实现sql语句, 例如:select * from student 的功能呢?
[/Quote]

linq 这样写 Expression<Func<student , bool>> filter = p => 1 == 1;
q107770540 2011-01-10
  • 打赏
  • 举报
回复
[Quote=引用楼主 totaitai97 的回复:]
怎么使用linq 编写 一个语句 来实现sql语句, 例如:select * from student 的功能呢?
[/Quote]
var query=from s in student select s;
快溜 2011-01-08
  • 打赏
  • 举报
回复
叶子 2011-01-08
  • 打赏
  • 举报
回复

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace LINQ技术
{
class Program
{
static void Main(string[] args)
{
//LINQ中的Where扩展方法,要想使用,必须导入using System.Linq;
//下面我们看一下这个方法的声明
//public static IEnumerable<TSource> Where<TSource>( this IEnumerable<TSource> source,Func<TSource, bool> predicate )
//返回类型是:IEnumerable<TSource>
//第一参数this IEnumerable<TSource> source代表的是他要扩展的类型,也就是说在IEnumerable<TSource>可以直接调用where方法
//Func<TSource, bool> predicate第二个参数是一个委托,下面我们看一下他的声明
//public delegate TResult Func<T, TResult>( T arg ) 封装一个带有T类型,返回Tresult类型的方法
//下面我们使用Linq中的Where方法来检索我们的列表
//我们做一个List<T>的列表,其中存放Person对象,然后我们用where方法检索出年纪在20-30之前的人员 。
List<Person> lists = new List<Person>() ;

lists.Add( new Person( "aladdin" , 30 ) ) ;
lists.Add( new Person( "jacky" , 20 ) ) ;
lists.Add( new Person( "zhao" , 11 ) ) ;
lists.Add( new Person( "fuck" , 33 ) ) ;
lists.Add( new Person( "emep" , 25 ) ) ;

IEnumerable<Person> reList = lists.Where<Person>( param => param.age >= 20 && param.age<= 30 ) ;

foreach( Person per in reList )
{
Console.WriteLine( per.name + " " + per.age ) ;
}
//结果 aladdin jacky

//其实Linq一般的查询,是可以直接写where select 等语句来实现,系统编译时,会自动将他转化成扩展方法的调用
var query = from r in lists where r.age >= 20 && r.age <= 30 select r;

foreach( Person per in query )
{
Console.WriteLine( per.name + " " + per.age ) ;
}

//linq语句必须是以from开头,以select 或者 group结尾巴
//注意,query变量,只是指定了一个查询方式,并没有执行,真正的执行其实是在foreach时才产生的

//推迟查询的执行
//推迟查询的执行也就是说查询是在跌代时才执行的,不是var query中,下面我们来用代码证实

Console.WriteLine( "增加新内容后的输出--------------") ;
lists.Add( new Person( "newaladdin" , 22 ) ) ;
//我们增加了一个新对象,22岁,明显是符合条件的,下面我们二次跌代
foreach( Person per in query )
{
Console.WriteLine( per.name + " " + per.age ) ;
}
//可以看出,第二次跌代完全可以接触到新对象,而我们并没有定义新的query 这就是推迟查执行


Console.ReadLine() ;
}

class Person
{
public string name ;
public int age ;

public Person( string name , int age )
{
this.name = name ;
this.age = age ;
}
}
}
}

本文来自CSDN博客,转载请标明出处:http://blog.csdn.net/aladdinty/archive/2008/12/23/3592079.aspx

6,129

社区成员

发帖
与我相关
我的任务
社区描述
MS-SQL Server 新技术前沿
社区管理员
  • 新技术前沿社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧