查询部门列的数据,延迟
var items=from c in customers
where c.ID<100
//匿名函数,可自定义属性count、ordercount
select new{Id=c.ID,cname=c.cusname,count=0,ordercount=c.order.count()};
//延迟加载(查询直到需要枚举结果时才真正执行) ,查询三部曲:获取源、定义查询、执行,
foreach (var item in items)
{
console.Writeline(item.cname+"------"+item.order.count);
}
count=0,ordercount=c.order.count()};
//延迟加载(查询直到需要枚举结果时才真正执行) ,查询三部曲:获取源、定义查询、执行,
foreach (var item in items)
{
console.Writeline(item.cname+"------"+item.order.count);
}
关于延迟:返回值单一(一个int,string等)时没有延迟
GroupBy
//按照姓名分组,空格分隔,取空格前的部分
var result =persons.GroupBy(p=>p.Split(new char[]{' ' ))[0]);
foreach (var group in result)
{
Console.WriteLine("姓"+group.Key);//只有姓
foreach(var name in group)//姓名打出
{
Console.WriteLine("\t"+name);
}
}
GroupBy(p=>p.Split(new char[]{' ' ))[0]);
foreach (var group in result)
{
Console.WriteLine("姓"+group.Key);//只有姓
foreach(var name in group)//姓名打出
{
Console.WriteLine("\t"+name);
}
}
分页:小伙伴面试的时候被问到了这个问题,当时初听到大脑一片空白,分页?后来上网查了查,原来在积分系统中我写了*次linq的分页——我这记性也是醉醉的
ReturnClassifyList = (from A in ListClassifiyModel where (A.GradeID.Contains(TableEntity.GradeID)) select A).OrderBy(p => p.GradeID).ThenBy(p => p.levelID).ThenBy(p => p.ClassmateID).ThenBy(p => p.FillDate).Skip((pageIndex - 1) * pageSize).Take(pageSize).ToList();
Take方法的作用是从结果中取固定数量的值;skip可以取出除去满足条件的剩下的记录