LINQ表达式实例复习

来源:互联网 发布:淘宝登录注册流程 编辑:程序博客网 时间:2024/06/05 03:53
实例一:条件查询using System;using System.Collections.Generic;using System.Linq;namespace myfirst{    internal class Test    {        public static void Main()        {            //初始化武林高手            var master = new List<MartialArtsMaster>            {                new MartialArtsMaster {Id = 1, Name = "黄蓉", Age = 18, MenPai = "丐帮", Kongfu = "打狗棒法", Level = 9},                new MartialArtsMaster {Id = 2, Name = "洪七公", Age = 70, MenPai = "丐帮", Kongfu = "打狗棒法", Level = 10},                new MartialArtsMaster {Id = 3, Name = "郭靖", Age = 22, MenPai = "丐帮", Kongfu = "降龙十八掌", Level = 10},                new MartialArtsMaster {Id = 4, Name = "任我行", Age = 50, MenPai = "明教", Kongfu = "葵花宝典", Level = 1},                new MartialArtsMaster {Id = 5, Name = "东方不败", Age = 35, MenPai = "明教", Kongfu = "葵花宝典", Level = 10},                new MartialArtsMaster {Id = 6, Name = "林平之", Age = 23, MenPai = "华山", Kongfu = "葵花宝典", Level = 7},                new MartialArtsMaster {Id = 7, Name = "岳不群", Age = 50, MenPai = "华山", Kongfu = "葵花宝典", Level = 8},                new MartialArtsMaster {Id = 8, Name = "令狐冲", Age = 23, MenPai = "华山", Kongfu = "独孤九剑", Level = 10},                new MartialArtsMaster {Id = 9, Name = "梅超风", Age = 23, MenPai = "桃花岛", Kongfu = "九阴真经", Level = 8},                new MartialArtsMaster {Id = 10, Name = "黄药师", Age = 23, MenPai = "梅花岛", Kongfu = "弹指神通", Level = 10},                new MartialArtsMaster {Id = 11, Name = "风清扬", Age = 23, MenPai = "华山", Kongfu = "独孤九剑", Level = 10}            };            //初始化武学            var kongfu = new List<Kongfu>            {                new Kongfu {Id = 1, Name = "打狗棒法", Power = 90},                new Kongfu {Id = 2, Name = "降龙十八掌", Power = 95},                new Kongfu {Id = 3, Name = "葵花宝典", Power = 100},                new Kongfu {Id = 4, Name = "独孤九剑", Power = 100},                new Kongfu {Id = 5, Name = "九阴真经", Power = 100},                new Kongfu {Id = 6, Name = "弹指神通", Power = 100}            };            //使用lingq做查询            var res = from m in master                //from后面设置查询的集合                where m.Level > 8 &&m.MenPai=="丐帮"  //通过&&表达式来添加限制条件                //where后面跟上查询的条件                select m.Name;  //表示把m的集合返回            foreach (var temp in res)            {                Console.WriteLine(temp);            }        }    }}实例二:做连接查询using System;using System.Collections.Generic;using System.Linq;using System.Runtime.InteropServices;namespace myfirst{    internal class Test    {        public static void Main()        {            //初始化武林高手            var master = new List<MartialArtsMaster>            {                new MartialArtsMaster {Id = 1, Name = "黄蓉", Age = 18, MenPai = "丐帮", Kongfu = "打狗棒法", Level = 9},                new MartialArtsMaster {Id = 2, Name = "洪七公", Age = 70, MenPai = "丐帮", Kongfu = "打狗棒法", Level = 10},                new MartialArtsMaster {Id = 3, Name = "郭靖", Age = 22, MenPai = "丐帮", Kongfu = "降龙十八掌", Level = 10},                new MartialArtsMaster {Id = 4, Name = "任我行", Age = 50, MenPai = "明教", Kongfu = "葵花宝典", Level = 1},                new MartialArtsMaster {Id = 5, Name = "东方不败", Age = 35, MenPai = "明教", Kongfu = "葵花宝典", Level = 10},                new MartialArtsMaster {Id = 6, Name = "林平之", Age = 23, MenPai = "华山", Kongfu = "葵花宝典", Level = 7},                new MartialArtsMaster {Id = 7, Name = "岳不群", Age = 50, MenPai = "华山", Kongfu = "葵花宝典", Level = 8},                new MartialArtsMaster {Id = 8, Name = "令狐冲", Age = 23, MenPai = "华山", Kongfu = "独孤九剑", Level = 10},                new MartialArtsMaster {Id = 9, Name = "梅超风", Age = 23, MenPai = "桃花岛", Kongfu = "九阴真经", Level = 8},                new MartialArtsMaster {Id = 10, Name = "黄药师", Age = 23, MenPai = "梅花岛", Kongfu = "弹指神通", Level = 10},                new MartialArtsMaster {Id = 11, Name = "风清扬", Age = 23, MenPai = "华山", Kongfu = "独孤九剑", Level = 10}            };            //初始化武学            var kongfu = new List<Kongfu>            {                new Kongfu {Id = 1, Name = "打狗棒法", Power = 90},                new Kongfu {Id = 2, Name = "降龙十八掌", Power = 95},                new Kongfu {Id = 3, Name = "葵花宝典", Power = 100},                new Kongfu {Id = 4, Name = "独孤九剑", Power = 100},                new Kongfu {Id = 5, Name = "九阴真经", Power = 100},                new Kongfu {Id = 6, Name = "弹指神通", Power = 100}            };            //使用lingq做查询            var res = from m in master                join k in kongfu on m.Kongfu equals k.Name  //做连接查询(按照武术的名字做连接)                where k.Power>90   //在连接的基础上分离出power大于90的                select new {master = m, kongfu2 = k};            foreach (var temp in res)            {                Console.WriteLine(temp);            }        }    }}实例三:做分组操作using System;using System.Collections.Generic;using System.Linq;using System.Runtime.InteropServices;namespace myfirst{    internal class Test    {        public static void Main()        {            //初始化武林高手            var master = new List<MartialArtsMaster>            {                new MartialArtsMaster {Id = 1, Name = "黄蓉", Age = 18, MenPai = "丐帮", Kongfu = "打狗棒法", Level = 9},                new MartialArtsMaster {Id = 2, Name = "洪七公", Age = 70, MenPai = "丐帮", Kongfu = "打狗棒法", Level = 10},                new MartialArtsMaster {Id = 3, Name = "郭靖", Age = 22, MenPai = "丐帮", Kongfu = "降龙十八掌", Level = 10},                new MartialArtsMaster {Id = 4, Name = "任我行", Age = 50, MenPai = "明教", Kongfu = "葵花宝典", Level = 1},                new MartialArtsMaster {Id = 5, Name = "东方不败", Age = 35, MenPai = "明教", Kongfu = "葵花宝典", Level = 10},                new MartialArtsMaster {Id = 6, Name = "林平之", Age = 23, MenPai = "华山", Kongfu = "葵花宝典", Level = 7},                new MartialArtsMaster {Id = 7, Name = "岳不群", Age = 50, MenPai = "华山", Kongfu = "葵花宝典", Level = 8},                new MartialArtsMaster {Id = 8, Name = "令狐冲", Age = 23, MenPai = "华山", Kongfu = "独孤九剑", Level = 10},                new MartialArtsMaster {Id = 9, Name = "梅超风", Age = 23, MenPai = "桃花岛", Kongfu = "九阴真经", Level = 8},                new MartialArtsMaster {Id = 10, Name = "黄药师", Age = 23, MenPai = "梅花岛", Kongfu = "弹指神通", Level = 10},                new MartialArtsMaster {Id = 11, Name = "风清扬", Age = 23, MenPai = "华山", Kongfu = "独孤九剑", Level = 10}            };            //初始化武学            var kongfu = new List<Kongfu>            {                new Kongfu {Id = 1, Name = "打狗棒法", Power = 90},                new Kongfu {Id = 2, Name = "降龙十八掌", Power = 95},                new Kongfu {Id = 3, Name = "葵花宝典", Power = 100},                new Kongfu {Id = 4, Name = "独孤九剑", Power = 100},                new Kongfu {Id = 5, Name = "九阴真经", Power = 100},                new Kongfu {Id = 6, Name = "弹指神通", Power = 100}            };            //使用lingq做查询            var res = from m in master                join k in kongfu on m.Kongfu equals k.Name   //将两个表进行连接                group k by k.Name into g   //通过功夫的名字进行分组  等价于:(into g)                select new {m=g.Key, k=g.Count()};            foreach (var temp in res)            {                Console.WriteLine(temp);            }        }    }}

0 0
原创粉丝点击