几个经典的sql语句的LINQ to Entities实现方式
传统的程序员可能对Sql语句掌握的很熟悉,但初次接触LINQ的时候可能会摸不着头脑,在这里用LINQ实现之前开发程序时经常用到的sql语句,以便程序员能够掌握LINQ的用法。
一:Linq 实现模糊查询
string[] strs = {"andy","eric","amanda","abshu","baby"};
linq实现模糊查询有几种方法:
1)使用 Contains 来获取 数组 中是包含有 a 的数据;
var valContains = strs.Where(c => c.Contains("a")).ToList(); foreach (var val in valContains) { Response.Write(val+"\r\n"); }结果:

2)使用 IndexOf 来获取 数组 中是包含有 a 的数据;
var valIndexOf = strs.Where(c => c.IndexOf("a")>=0).ToList(); foreach (var val in valIndexOf) { Response.Write(val + "\r\n"); }结果:

3)使用 StartsWith 来获取 数组 中是 以a 开头的的数据;
var valStartsWith = strs.Where(c => c.StartsWith("a")).ToList(); foreach (var val in valStartsWith) { Response.Write(val + "\r\n"); }结果:

4)使用 EndsWith 来获取 数组 中是 以a结尾的数据;
var valEndsWith = strs.Where(c => c.EndsWith("a")).ToList(); foreach (var val in valEndsWith) { Response.Write(val + "\r\n"); }结果:

二:Linq 实现 传统Sql中的where Value in ( 1, 2, 3 )
int[] ints = { 10, 11, 12, 13, 101, 110, 120, 131, 31 };
var intContains = ints.Where(c => new[] { 10, 11, 131 }.Contains(c)).ToList(); foreach (var intContain in intContains) { Response.Write(intContain + "\r\n"); }结果:

三:Linq 实现 随机排序
var intOrder = ints.OrderBy(c => Guid.NewGuid()); foreach (var intContain in intOrder) { Response.Write(intContain + "\r\n"); }结果:

四:Linq 实现 合计、最大值、最小值的获取
合计:
var intSum = ints.Sum(); Response.Write(intSum + "\r\n");
最大值:
var intMax = ints.Max(); Response.Write(intMax + "\r\n");
最小值:
var intMin = ints.Min(); Response.Write(intMin + "\r\n");结果:

五:Linq 实现 简单的 分页
int[] ints = { 10, 11, 12, 13, 101, 110, 120, 131, 31 };
var pageSize = 2;//每两个为一页 var page = 3;//当前页数,已经翻到第三页了。 var intPage = ints.Skip(pageSize*(page - 1)).Take(pageSize).ToList(); foreach (var intContain in intPage) { Response.Write(intContain + "\r\n"); }结果:

六:Linq 实现 去重
int[] ints2 = { 10, 11, 12, 120, 101, 110, 120, 131, 10 }; foreach (var i in ints2.Distinct()) { Response.Write(i + "\r\n"); }结果:
