Fork me on GitHub

C# 中常用Lambda表达式

更多访问:https://docs.microsoft.com/zh-cn/dotnet/csharp/programming-guide/statements-expressions-operators/lambda-expressions
查询:
Select() 、SelectMany()
查询要注意 IEnumerable<T>和IQueryable<T>
List<Student> _students = new List<Student>()
            {
                new Student {S_="01", Sname= "赵雷", Sage= DateTime.Parse("1990-01-01"), Ssex= ""},
                new Student{S_= "02", Sname= "钱电", Sage= DateTime.Parse("1990-12-21"), Ssex= ""},
                new Student{S_= "03", Sname= "孙风", Sage= DateTime.Parse("1990-05-20"), Ssex= ""},
                new Student{S_= "04", Sname= "李云", Sage= DateTime.Parse("1990-08-06"), Ssex= ""},
                new Student{S_= "05", Sname= "周梅", Sage= DateTime.Parse("1991-12-01"), Ssex= ""},
                new Student{S_= "06", Sname= "吴兰", Sage= DateTime.Parse("1992-03-01"), Ssex= ""},
                new Student{S_= "07", Sname= "郑竹", Sage= DateTime.Parse("1989-07-01"), Ssex= ""},
                new Student{S_= "08", Sname= "王菊", Sage= DateTime.Parse("1990-01-20"), Ssex= ""}
            };

Select()
 为每个源值生成一个结果值。 因此,总体结果是一个与源集合具有相同元素数目的集合。 与之相反,SelectMany() 将生成单一总体结果,其中包含来自每个源值的串联子集合。

 _students.Select(m => m.Sname);//获取当前_students 中所有Sname

  var i=_students.SelectMany(m => m.Sname);

 // _students.Select(m => m.Sname).First();//返回一个序列的第一个元素。
 //_students.Select(m => m.Sname).FirstOrDefault();//返回序列中的第一个元素;如果序列中不包含任何元素,则返回默认值。
//_students.Where(m => m.Sname == "");//条件查询
_students.Skip(2);//跳过指定的数量的序列中的元素,然后返回剩余元素。
_students.Take(5);//从序列的开头返回指定的数量的连续元素。 相当于 Sql 中Top

int PageSize=5 , PageIndex =2;
_students.Take(PageSize * PageIndex).Skip(PageSize * (PageIndex - 1));//实现分页 PageSize和PageIndex 从客户端传入

Contains()方法使用:

      string[] str = { "孙风", "赵雷" };
          var y = _students.Where(m => str.ToList().Select(n => n).Contains(m.Sname));//2条数据
      y = _students.Where(m => m.Sname.Contains("赵雷"));//模糊查询

          List<string> StrList = new List<string>() { "孙风", "赵雷" };
          var x = _students.Where(m => StrList.Select(n => n).Contains(m.Sname));//2条数据
          return _students;

 

posted @ 2019-12-05 14:19  都一样*  阅读(944)  评论(0编辑  收藏  举报