1.Any判断集合是否包含元素,返回值是bool,一般比count()>0效率高.Any还可以指定条件表达式.
bool b=list.Any(p=>p.Age>50)
等价于
bool b=list.Where(p=>p.Age>50).Any
2.distinct()剔除完全重复的数据
3.order by
list.orderby(c=>c.Age).thenBy(p=>p.Salary)
4.lis.Skip(3).Take(2) Skip(n)跳过前n条,Take(n)获取最多n条数据
5.Except
int []nums1={1,2,3,4}
int []nums2={1,2,3,4,5,6}
var nums=nums2.Except(nums1);
结果
nums={5,6}
6.Union
int []nums1={1,2,3,4,10}
int []nums2={1,2,3,4,5,6}
var nums3=nums1.Union (nums2);
结果
nums3={1,2,3,4,5,6,10};
7.Intersect
int []nums1={1,2,3,4,10}
int []nums2={1,2,3,4,5,6}
var nums3=nums1.Intersect(nums2);
结果
nums3={1,2,3,4};
8.groupby分组
list.groupby(g=>g.Age)
9.SelectMany
IEnumerable<Person> student=teachers.SelectMany(t=>t.Students)
10.join
Dog d1=new Dag{Id=1,MasterId=3,Name ="网站"};
Dog d2=new Dag{Id=2,MasterId=1,Name ="网站"};
Dog d3=new Dag{Id=3,MasterId=2,Name ="网站"};
Dog[]dogs={d1,d2,d3}
Master master1=new Master{Id=2,Name='11'};
Master master2=new Master{Id=3,Name='11'};
Master[]master={master1,master2};
var result=dogs.Where(d=>d.id>1).join(master,d=>d.MasterId,m=>m.Id,(d,m)=>new {DagName=d.Name,MasterName=m.Name})
from m in masters
orderby m.Age,m.Id descending
select m;
var items = from d in dags
join m in masters
on d.MasterId equals m.Id
select new { DogName=d.Name, MasterName=m.Name};
13.分组
var fen = from m in masters
group m by m.Age into g
select new { g.Key, MaxId = g.Max(d => d.Id) };
14.IQueryable效率比IEnumerable高 ,IEnumerable会在内存中取后续数据
15.EF使用sql语句
using(var con=new Context())
{
//查询
int id=0;
var ql=con.Database.SqlQuery<Item1>("select Name ,Count(*) count from Test where Id>{0} ",id);
//操作
string name="小小";
var q1=con.Database.ExecuteSqlCommand(" insert into Test (Name,Age) values({0},{1} ) ",name,id);
}
16.关于时间的
using(var con=new Context())
{
con.Persons.Where(p=>SqlFunctions.DateDiff("honr",p.CreateDateTime,DateTime.Now)>1)
}
17.修改
using(var con=new Context())
{
Person p1=new Person(){Id=1,Age=119};
con.Entry(p1).State=System.Data.Entity.EntityState.Modific
``