温馨提示×

温馨提示×

您好,登录后才能下订单哦!

密码登录×
登录注册×
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》

Linq 简单的查询,扩展方法

发布时间:2020-07-30 09:25:12 来源:网络 阅读:301 作者:1473348968 栏目:编程语言

----------------------------------------------------Racer.cs

using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; using System.Collections;   namespace ConsoleApplication1 {     [Serializable]     public class Racer:IComparable<Racer>,IFormattable     {         public string FirstName { get; private set; }//第一个武将         public string LastName { get; private set; }//第二个武将         public int Wins { get; private set; }//赢得次数         public string Country { get; private set; }//国家         public int Starts { get; private set; }//开始         public string[] Arms { get; private set; }//武器         public int[] Years { get; private set; }//年份         public Racer(string firstname = "", string lasename = "", int wins = 0, string country = "", int starts = 0, IEnumerable<string> Arms = null, IEnumerable<int> years = null)         {             this.FirstName = firstname;             this.LastName = lasename;             this.Wins = wins;             this.Country = country;             this.Starts = starts;             List<string> LArms = new List<string>();             foreach (var item in Arms)             {                 LArms.Add(item);             }             this.Arms = LArms.ToArray();             List<int> Lyears = new List<int>();             foreach (var item in years)             {                 Lyears.Add(item);             }             this.Years = Lyears.ToArray();         }         public int CompareTo(Racer other)         {             if (other == null) throw new ArgumentNullException("对象不能为空");             return this.Wins.CompareTo(other.Wins);         }         public string ToString(string format, IFormatProvider formatProvider)         {             switch (format)             {                  case "":                     return ToString();                 case "C":                     StringBuilder sb = new StringBuilder();                     foreach (var item in Arms)                     {                         sb.Append(item + ",");                     }                     return sb.ToString().TrimEnd(',');                 case "Y":                    StringBuilder sb2 = new StringBuilder();                     foreach (var item in Years)                     {                         sb2.Append(item + ",");                     }                     return sb2.ToString().TrimEnd(',');                 default:                     return ToString();             }         }         public override string ToString()         {             return string.Format("第一个赛手:{0},最后一个赛手:{1},赢的次数:{2},国家:{3},开始:{4}",this.FirstName,this.LastName,this.Wins.ToString(),this.Country,this.Starts.ToString());         }     } }

 ----------------------------------------------------Team.cs

using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; namespace ConsoleApplication1 {     public class Team     {         public string Name { get; private set; }//团队名称         public int[] Years { get; private set; }         public Team(string name,params int[] years)         {             this.Name = name;             this.Years = years;         }     } }

----------------------------------------------------Formula.cs

using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; namespace ConsoleApplication1 {     public static class Formula     {         private static List<Racer> racers;         private static List<Team> team;         public static IList<Racer> GetChampions()         {                          if (racers == null)             {                 racers = new List<Racer>();                 racers.Add(new Racer("张飞", "关羽", 100, "蜀国", 10, new string[] { "丈八蛇矛", "青龙偃月刀" }, new int[] { 200, 201, 202 }));                 racers.Add(new Racer("黄忠", "魏延", 80, "蜀国", 10, new string[] { "穿杨弓", "大***" }, new int[] {203}));                 racers.Add(new Racer("许褚", "典韦", 95, "魏国", 10, new string[] { "大铁锤", "双戟" }, new int[] { 195, 212 }));                 racers.Add(new Racer("张辽", "徐晃", 90, "魏国", 10, new string[] { "长把子刀", "长把子斧" }, new int[] { 205, 106, 215 }));                 racers.Add(new Racer("程普", "黄盖", 96, "吴国", 10, new string[] { "龙虎鞭", "大刀" }, new int[] { 190, 191, 202,207 }));                 racers.Add(new Racer("周泰", "太史慈", 88, "吴国", 10, new string[] { "无敌身躯", "火箭枪" }, new int[] { 195, 196, 197 }));             }             return racers;         }         public static IList<Team> GetConstructorChampions()         {             if (team == null)             {                 team = new List<Team>();                 team.Add(new Team("兄弟队", new int[] { 200, 201, 202 }));                 team.Add(new Team("死党队", new int[] { 203 }));                 team.Add(new Team("虎营队", new int[] { 195, 212 }));                 team.Add(new Team("良将队", new int[] { 205, 106, 215 }));                 team.Add(new Team("老将队", new int[] { 190, 191, 202, 207 }));                 team.Add(new Team("不死队", new int[] { 195, 196, 197 }));             }             return team;         }             } }

----------------------------------------------------主程序

using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; namespace ConsoleApplication1 {     class Program     {         static void Main(string[] args)         {             var query = from r in Formula.GetChampions()                         where r.Country == "蜀国"                         orderby r.Wins descending                         select r;             foreach (var item in query)             {                 Console.WriteLine("{0}",item);             }             Console.ReadKey();                          //===============================================扩展方法             List<Racer> RacersCondition = new List<Racer>(Formula.GetChampions());             //Where:扩展方法,用于筛选             //OrderBy:扩展方法,用于排序             //Select:扩展方法,将值投放到新表中             IEnumerable<Racer> RacersResult = RacersCondition.Where(r => r.Country == "吴国").OrderBy(r => r.Wins).Select(r => r);             foreach (var item in RacersResult)             {                 Console.WriteLine(item);             }             Console.ReadKey();         }     } }

 

向AI问一下细节

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

AI