linq、lambda基本语句

LINQ (语言集成查询)

LINQ的关键词:from, select, in, where, group by, orderby, …

from 临时变量 in 实现IEnumerable<T>接口的对象

where条件表达式

[orderby 条件]

[group by 条件]

select 临时变量中被查询的值

实现IEnumerable<T>接口的对象.LINQ方法名(lambda表达式)

1.查询一个int数组中小于5的数字,并按照大小顺序排列

static void Main(string[] args)

{

int[] arr = new int[] { 8, 5, 89, 41, 1, 2, 3, 65, 1 };

var m = from n in arr where n < 5 orderby n descending select n;//小于5,并且倒序排列显示

foreach (var n in m)

{

Console.WriteLine(n);

}

Console.ReadLine();

}

2. List<User> userlist = new List<User>(4) { user1, user2, user3, user4 };

List<School> Schlist = new List<School>() {
new School(1,"武汉大学"),new School(2,"华中科技大学"),new School(3,"华中师范大学")
};

(1)求和

 var sum = userlist.Where(a => { return a.ID > 0; }).Sum(a=>a.ID);

Console.WriteLine(sum);

IEnumerable.Where()方法里面的参数数委托类型Func<TSource, bool> 前面为参数 最后面一个为返回值

(2)求最大最小值 Max Min

var max = userlist.Max(a => a.ID);

Console.WriteLine(max);
//最小值
var min = userlist.Min(a => a.ID);
Console.WriteLine(min);

(3)循环forEach

userlist.ForEach(a =>{
   if (a.Age > 20){Console.WriteLine(a.ID);}
 });

(4)条件筛选where

var user = userlist.Where(a => a.ID == 114).Single();
//筛选所有男性用户
 var templist = userlist.Where(a => a.Sex == "男").ToList();

(4)排序

 //排序  根据ID逆序
templist = userlist.OrderByDescending(a => a.ID).ToList();
//升序
templist = userlist.OrderBy(a => a.ID).ToList();

(5)分组ToLookup和GroupBy

//分组
 var lookup = userlist.ToLookup(a => a.Sex);
 foreach (var item in lookup)
 {
   Console.WriteLine(item.Key);
   foreach (var sub in item)
   {
       Console.WriteLine("\t\t"+sub.Name+" "+sub.Age);
    }
 }
            //另一种
         var dic =  userlist.GroupBy(a => a.Sex);
         foreach (var item in dic)
           {
               Console.WriteLine(item.Key);
               foreach (var sub in item)
               {
                   Console.WriteLine("\t\t" + sub.Name + " " + sub.Age);
               }
           }
           

(6)内联接

//联接
var temp = from usertemp in userlist join sch in Schlist on usertemp.SchID equals sch.SchID 

select new { Id = usertemp.ID, Name = usertemp.Name, Age = usertemp.Age,Schname=sch.SchName };

 

 

 

 

 

二、

 

 

 

WebTestDBEntities db = new WebTestDBEntities();

1.  linq查询所有列的数据

var userInfoList = from u in db.UserInfo

                     where u.ID == 10

                     select u;

2.  linq查询部分列的数据

var userInfoList = from u in db.UserInfo

                     where u.ID >= 1

                     select new { Name = u.UserName, Pwd = u.UserPass };

foreach (var userInfo in userInfoList)

{

    Response.Write(userInfo.Name + ":" + userInfo.Pwd + "<br/>");

}

3. lambda查询所有列数据

var userInfoList = db.UserInfo.Where<UserInfo>(u => u.ID > 0);

foreach (var userInfo in userInfoList)

{

    Response.Write(userInfo.UserName + ":" + userInfo.UserPass + "<br/>");

}

4. lambda查询部分列数据

var userInfoList = db.UserInfo.Where<UserInfo>(u => u.ID > 0).Select(a => new { Name = a.UserName, Pwd = a.UserPass });

foreach (var userInfo in userInfoList)

{

    Response.Write(userInfo.Name + ":" + userInfo.Pwd + "<br/>");

}

5. 排序

var userInfoList = db.UserInfo.Where<UserInfo>(c => true).OrderBy<UserInfo, int>(u => u.ID).Select(u => new { Name = u.UserName,Email=u.Email });//升序排序

var userInfoList = db.UserInfo.Where<UserInfo>(c => true).OrderByDescending<UserInfo, int>(u => u.ID).Select(u => new { Name = u.UserName, Email = u.Email });//降序排序

var userInfoList = (from u in db.UserInfo select u).OrderByDescending<UserInfo, int>(c => c.ID).Select(u => new { Name = u.UserName, Email = u.Email });

6.分页查询

int pageIndex = 2;

int pageSize = 2;

var userInfoList = db.UserInfo.Where<UserInfo>(c => true).OrderBy<UserInfo, int>(u => u.ID).Skip<UserInfo>((pageIndex - 1) * pageSize).Take<UserInfo>(pageSize);

foreach (var userInfo in userInfoList)

{

   Response.Write(userInfo.UserName + "<br/>");

}

7.查询

myDataBaseEntities myDataBase = new myDataBaseEntities();

var list = myDataBase.Set<MyUser>().AsNoTracking().Where(e => e.UserID == userID && e.Password == passWord).ToList();

return list.Count > 0 ? true : false;

8.新增

myDataBaseEntities myDataBase = new myDataBaseEntities();

var list = myDataBase.Set<MyUser>().Add(myUser);

return myDataBase.SaveChanges() > 0 ? true : false;

9.修改

myDataBaseEntities myDataBase = new myDataBaseEntities();

var query = myDataBase.Set<MyUser>().Where(e => e.RowGuid == myUser.RowGuid).FirstOrDefault();

query.UserID = myUser.UserID;

query.UserName = myUser.UserName;

query.Password = myUser.Password;

myDataBase.Entry<MyUser>(query).State = EntityState.Modified;

return myDataBase.SaveChanges() > 0 ? true : false;

10.删除

myDataBaseEntities myDataBase = new myDataBaseEntities();

var list = myDataBase.Set<MyUser>().Remove(myUser);

return myDataBase.SaveChanges() > 0 ? true : false;

posted @ 2020-06-07 18:04  吃饭睡觉打痘痘  阅读(137)  评论(0编辑  收藏  举报