
下面是内存溢出 jb51.cc 通过网络收集整理的代码片段。
内存溢出小编现在分享给大家,也给大家做个参考。
static voID Deferredquery() { var names = new List<string> { "Nino","Alberto","Juan","Mike","Phil" }; var namesWithJ = from n in names where n.StartsWith("J") orderby n select n; Console.Writeline("First iteration"); foreach (string name in namesWithJ) { Console.Writeline(name); } Console.Writeline(); names.Add("John"); names.Add("Jim"); names.Add("Jack"); names.Add("Denny"); Console.Writeline("Second iteration"); foreach (string name in namesWithJ) { Console.Writeline(name); } /* First iteration Juan second iteration Jack Jim John Juan */ } //如查询出来自巴西的所有世界冠军,并按照夺冠次数排序 static voID liNQquery() { var query = from r in Formula1.GetChampions() where r.Country == "Brazil" orderby r.Wins descending select r; foreach (var r in query) { Console.Writeline("{0:A}",r); } } //Zip合并功能 static voID ZipOperation() { var racernames = from r in Formula1.GetChampions() where r.Country == "Italy" orderby r.Wins descending select new { name = r.Firstname + " " + r.Lastname }; var racernamesAndStarts = from r in Formula1.GetChampions() where r.Country == "Italy" orderby r.Wins descending select new { Lastname = r.Lastname,Starts = r.Starts }; //var racers = racernames.Zip(racernamesAndStarts,(first,second) => first.name + ",starts: " + second.Starts); //foreach (var r in racers) //{ // Console.Writeline(r); //} } //根据赛手获得一级方程式冠军的次数,列出最成功的国家 static voID Aggregate2() { var countrIEs = (from c in from r in Formula1.GetChampions() group r by r.Country into c select new { Country = c.Key,Wins = (from r1 in c select r1.Wins).Sum() } orderby c.Wins descending,c.Country select c).Take(5); foreach (var country in countrIEs) { Console.Writeline("{0} {1}",country.Country,country.Wins); } } //筛选赛手,只返回获得冠军次数超过3次的赛手 static voID Aggregate() { var query = from r in Formula1.GetChampions() where r.Years.Count() > 3 orderby r.Years.Count() descending select new { name = r.Firstname + " " + r.Lastname,TimesChampion = r.Years.Count() }; foreach (var r in query) { Console.Writeline("{0} {1}",r.name,r.TimesChampion); } } //linq分页显示 static voID Partitioning() { int pageSize = 5; int numberPages = (int)Math.Ceiling(Formula1.GetChampions().Count() / (double)pageSize); for (int page = 0; page < numberPages; page++) { Console.Writeline("Page {0}",page); var racers = (from r in Formula1.GetChampions() orderby r.Lastname select r.Firstname + " " + r.Lastname). Skip(page * pageSize).Take(pageSize); foreach (var name in racers) { Console.Writeline(name); } Console.Writeline(); } } //有驾驶法拉利和迈凯轮的冠军,集合交集 static voID Setoperations() { Func<string,IEnumerable<Racer>> racersByCar = car => from r in Formula1.GetChampions() from c in r.Cars where c == car orderby r.Lastname select r; Console.Writeline("World champion with Ferrari and McLaren"); foreach (var racer in racersByCar("Ferrari").Intersect(racersByCar("McLaren"))) { Console.Writeline(racer); } } //列出每年的赛手冠军和车队冠军 static voID Join() { var racers = from r in Formula1.GetChampions() from y in r.Years where y > 2003 select new { Year = y,name = r.Firstname + " " + r.Lastname }; var teams = from t in Formula1.GetContructorChampions() from y in t.Years where y > 2003 select new { Year = y,name = t.name }; var racersAndTeams = from r in racers join t in teams on r.Year equals t.Year select new { Year = r.Year,Racer = r.name,Team = t.name }; Console.Writeline("Year Champion " + "Constructor Title"); foreach (var item in racersAndTeams) { Console.Writeline("{0}: {1,-20} {2}",item.Year,item.Racer,item.Team); } } //现在一级方程式冠军应按照国家分组,并列出一个国家的冠军数以及包含赛手名序列 static voID GrouPingWithnestedobjects() { var countrIEs = from r in Formula1.GetChampions() group r by r.Country into g orderby g.Count() descending,g.Key where g.Count() >= 2 select new { Country = g.Key,Count = g.Count(),Racers = from r1 in g orderby r1.Lastname select r1.Firstname + " " + r1.Lastname }; foreach (var item in countrIEs) { Console.Writeline("{0,-10} {1}",item.Country,item.Count); foreach (var name in item.Racers) { Console.Write("{0}; ",name); } Console.Writeline(); } } static voID GrouPing() { var countrIEs = from r in Formula1.GetChampions() group r by r.Country into g orderby g.Count() descending,Count = g.Count() }; foreach (var item in countrIEs) { Console.Writeline("{0,item.Count); } } //显示驾驶法拉利的所有一级方程式冠军名字 static voID CompoundFrom() { var ferrarIDrivers = from r in Formula1.GetChampions() from c in r.Cars where c == "Ferrari" orderby r.Lastname select r.Firstname + " " + r.Lastname; foreach (var racer in ferrarIDrivers) { Console.Writeline(racer); } } static voID TypeFiltering() { object[] data = { "one",2,3,"four","five",6 }; var query = data.OfType<string>(); foreach (var s in query) { Console.Writeline(s); } /* one four five */ } //使用索引返回姓氏以A开头、索引为偶数的赛手 static voID IndexFiltering() { var racers = Formula1.GetChampions(). Where((r,index) => r.Lastname.StartsWith("A") && index % 2 != 0); foreach (var r in racers) { Console.Writeline("{0:A}",r); } } //找出赢得至少 15场比赛的巴西和奥地利赛手 static voID Filtering() { var racers = from r in Formula1.GetChampions() where r.Wins > 15 && (r.Country == "Brazil" || r.Country == "Austria") select r; foreach (var r in racers) { Console.Writeline("{0:A}",r); } } //取消linq并行 *** 作 static voID Cancellation() { const int arraySize = 100000000; var data = new int[arraySize]; var r = new Random(); for (int i = 0; i < arraySize; i++) { data[i] = r.Next(40); } var cts = new CancellationTokenSource(); new Thread(() => { try { var sum = (from x in data.AsParallel().WithCancellation(cts.Token) where x < 80 select x).Sum(); Console.Writeline("query finished,sum: {0}",sum); } catch (OperationCanceledException ex) { Console.Writeline(ex.Message); } }).Start(); Console.Writeline("query started"); Console.Write("cancel? "); int input = Console.Read(); if (input == 'Y' || input == 'y') { // cancel! cts.Cancel(); } } //linq 并行 *** 作 static voID IntroParallel() { const int arraySize = 100000000; var data = new int[arraySize]; var r = new Random(); for (int i = 0; i < arraySize; i++) data[i] = r.Next(40); Stopwatch watch = new Stopwatch(); watch.Start(); var q1 = (from x in Partitioner.Create(data).AsParallel() where x < 80 select x).Sum(); watch.Stop(); Console.Writeline(watch.ElapsedMilliseconds); } 以上是内存溢出(jb51.cc)为你收集整理的全部代码内容,希望文章能够帮你解决所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
总结以上是内存溢出为你收集整理的Linq常见 *** 作示例全部内容,希望文章能够帮你解决Linq常见 *** 作示例所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)