河马の浴缸

真诚,专注
  博客园  :: 首页  :: 新随笔  :: 联系 :: 订阅 订阅  :: 管理

Linq学习

Posted on 2008-04-06 18:25  浴缸里の河马  阅读(216)  评论(0)    收藏  举报
操作符是方法,条件是lambda表达式,lambda表达式实际是一个委托对象的实例.
from s in names
where s.Length==5
orderby s
select s.ToUpper()

names.where(s=>s.Length==5)
.orderby(s=>s)
.select(s=>s.ToUpper)

var namelist = new[] "beibei""junjun""xinxin" };
            var name 
= Array.FindAll(namelist, s => s != "beibei");
            
foreach (var v in name)

                Console.WriteLine(v);

var persons = new List<Person> {

    
new Person {username = "a", age=19}

    
new Person {username = "b", age=20},

    
new Person {username = "a", age=21}

    }
;

var selectperson 
= from p in persons where p.age >= 20 select p.username.ToUpper();

foreach(var p in selectperson)

    Console.WriteLine(p);

其中,Array.FindAll方法,第一个参数传个集合对象,第二个参数就是lambda表达式
而var selectperson后面那句上标准的Linq查询语句,且等价与下面这句,我们看到,还是用了上面的操作符加lambda表达式的形式,有人问为什么persons有where,select等方法,是因为persons是List<T>的类型,这类型的接口有相关的扩展方法了..
var selectperson = persons.Where(p=>p.age>=20).Select(p=>p.username.ToUpper());
同样的,上面那个findall方法,也可以变成Lambda表达式.
var result = from s in namelist where s !="beibei" select s;
我们看到,Linq语句可以和对象使用操作符加Lambda表达式进行转换....
今天就说到着这里..后续将开始Linq to sql