C# 基础之Linq编程

图片来自 siki学院侵删

在这里插入图片描述

样例代码

//初始化武林高手
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(){
     
     KongfuId=1, KongfuName="打狗棒法", Lethality=90},
               new Kongfu(){
     
     KongfuId=2, KongfuName="降龙十八掌", Lethality=95},
               new Kongfu(){
     
     KongfuId=3, KongfuName="葵花宝典", Lethality=100},
               new Kongfu() {
     
      KongfuId=  4, KongfuName = "独孤九剑", Lethality = 100 },
               new Kongfu() {
     
      KongfuId = 5, KongfuName = "九阴真经", Lethality = 100 },
               new Kongfu() {
     
      KongfuId = 6, KongfuName = "弹指神通", Lethality = 100 }
           };

           //var res = from m in master
           //          where m.Age > 24 && m.Menpai == "丐帮"
           //          select m.Name + " " + m.Age;
           //var res = master.Where(m => m.Age > 24 && m.Menpai == "丐帮").Select(m => m.Name + " " + m.Age);
           //联合查询
           //var res = from m in master
           //    from k in kongfu
           //    where m.Kongfu == k.KongfuName && k.Lethality > 95
           //    select new {MartialArtsMaster = m, Kongfu = k};
           
           //var res = from m in master
           //    from k in kongfu    
           //    where m.Kongfu == k.KongfuName && k.Lethality > 95 && m.Age > 24
           //    select m.Name + " " + m.Menpai + " " + m.Kongfu + " " + k.Lethality;    
           //var res = master.SelectMany(m => kongfu, (m, k) => new { master = m, kongfu = k }).Where(m =>
           //      m.master.Kongfu == m.kongfu.KongfuName && m.kongfu.Lethality > 95 && m.master.Age > 24).Select(m =>
           //      m.master.Name + " " + m.master.Menpai + " " + m.master.Kongfu + " " + m.kongfu.Lethality);
           
           //var res = from m in master
           //    where m.Age > 24
           //    orderby m.Age descending, m.Level
           //    select m;
           //var res = master.Where(m => m.Age > 24).OrderByDescending(m => m.Age).ThenBy(m => m.Level);

           //var res = from m in master
           //          join k in kongfu on m.Kongfu equals k.KongfuName
           //          where m.Age > 24
           //          orderby m.Age descending, m.Level
           //          select new { master = m, kongfu = k };
           //var res = master.Join(kongfu, m => m.Kongfu, k => k.KongfuName, (m, k) => new {master = m, kongfu = k})
           //    .Where(r => r.master.Age > 24).OrderByDescending(r => r.master.Age).ThenBy(r => r.master.Level);
           //var res = from m in master
           //    group m by m.Menpai
           //    into g
           //    orderby g.Count() descending 
           //    select g;
           var res = master.GroupBy(m => m.Menpai).OrderByDescending(g => g.Count());
           //var res = master.Any(m => m.Menpai == "丐帮");
           //var res = master.All(m => m.Menpai == "丐帮");
           //foreach (string r in res)
           //{
     
     
           //    Console.WriteLine(r);
           //}
           foreach (var m in res)
           {
     
     
               Console.WriteLine(m.Key + ":" + m.Count() + ":");
           }
class Kongfu
   {
     
     
       public int KongfuId {
     
      get; set; }
       public string KongfuName {
     
      get; set; }
       public int Lethality {
     
      get; set; }
       public override string ToString()
       {
     
     
           return $"{nameof(KongfuId)}: {KongfuId}, {nameof(KongfuName)}: {KongfuName}, {nameof(Lethality)}: {Lethality}";
       }
   }
class MartialArtsMaster
   {
     
     
       public int Id {
     
      get; set; }
       public string Name {
     
      get; set; }
       public int Age {
     
      get; set; }
       public string Menpai {
     
      get; set; }
       public string Kongfu {
     
      get; set; }
       public int Level {
     
      get; set; }
       public override string ToString()
       {
     
     
           return $"{nameof(Id)}: {Id}, {nameof(Name)}: {Name}, {nameof(Age)}: {Age}, {nameof(Menpai)}: {Menpai}, {nameof(Kongfu)}: {Kongfu}, {nameof(Level)}: {Level}";
       }
   }

猜你喜欢

转载自blog.csdn.net/u014147126/article/details/83616984
今日推荐