最近比较喜欢LINQ,真是碉堡了。下面写了个例子演示一下LINQ对List<T>的操作,包括排序、where条件、选部分数据等查询。最近偷懒,不写注释了,大家自己看一下就明白了~
测试用的BLL和Model
03 |
public List<TestModel> GetList() |
05 |
return new List<TestModel>() |
07 |
new TestModel(){ Id=1, Name= "RYWE" , Content= "IOJADJ" , Posttime=DateTime.Now.AddHours(1) }, |
08 |
new TestModel(){ Id=2, Name= "JGFA" , Content= "CAFYRE" , Posttime=DateTime.Now.AddHours(0) }, |
09 |
new TestModel(){ Id=4, Name= "PIOU" , Content= "OVXZLA" , Posttime=DateTime.Now.AddHours(5) }, |
10 |
new TestModel(){ Id=5, Name= "OUIH" , Content= "AIPJLM" , Posttime=DateTime.Now.AddHours(3) }, |
11 |
new TestModel(){ Id=7, Name= "ZCXI" , Content= "KUQOPA" , Posttime=DateTime.Now.AddHours(7) } |
16 |
public class TestModel |
18 |
public int Id { get ; set ; } |
19 |
public string Name { get ; set ; } |
20 |
public string Content { get ; set ; } |
21 |
public DateTime Posttime { get ; set ; } |
27 |
public override string ToString() |
29 |
StringBuilder sb = new StringBuilder(); |
30 |
sb.Append(String.Format( "{0}={1}, " , "Id" , this .Id)); |
31 |
sb.Append(String.Format( "{0}={1}, " , "Name" , this .Name)); |
32 |
sb.Append(String.Format( "{0}={1}, " , "Content" , this .Content)); |
33 |
sb.Append(String.Format( "{0}={1}" , "Posttime" , this .Posttime)); |
测试代码:
01 |
static void Main( string [] args) |
04 |
TestBLL bll = new TestBLL(); |
05 |
List<TestModel> mList = bll.GetList(); |
07 |
var query = from m in mList |
10 |
var query1 = from m in mList |
14 |
var query2 = from m in mList |
16 |
orderby m.Id descending |
19 |
var query3 = from m in mList |
20 |
orderby m.Posttime descending |
23 |
var query4 = (from m in mList |
26 |
var query5 = from m in mList |
27 |
orderby m.Name ascending |
30 |
PrintList( "from m in mList select m" , query); |
31 |
PrintList( "from m in mList where m.Id > 2 select m" , query1); |
32 |
PrintList( "from m in mList select m" , query2); |
33 |
PrintList( "from m in mList orderby m.Posttime descending select m" , query3); |
34 |
PrintList( "(from m in mList where select m).Take(3)" , query4); |
35 |
PrintList( "from m in mList orderby m.Name ascending select m" , query5); |
41 |
private static void PrintList( string expression, IEnumerable<TestModel> query) |
43 |
Console.WriteLine( "Query expression: " + expression); |
44 |
Console.WriteLine( "__________________________________________________________________" ); |
45 |
foreach (var item in query) |
47 |
Console.WriteLine(item.ToString()); |
49 |
Console.WriteLine( "\n" ); |
有图有真相:
![](http://www.wyjexplorer.cn/Uploads/LINQList_201112080913596562.PNG)
本文系转载,具体哪的 问百度吧 我找快照看的