• 可枚举对象操作


            class Product
            {
                public int ID { get; set; }
                public string Name { get; set; }
                public string Region { get; set; }
                public decimal Price { get; set; }
                public bool IsFavorite { get; set; }
            }
    
    void testIEnumerable()
            {
                List<Product> products = new List<Product> {
                    new Product { ID=1, Name="路易十八比萨饼", Region="意大利", Price=79961, IsFavorite = false },
                    new Product { ID=2, Name="澳洲胡桃", Region="澳洲", Price=195, IsFavorite = false },
                    new Product { ID=3, Name="Almas鱼子酱", Region="伊朗", Price=129950, IsFavorite = false },
                    new Product { ID=4, Name="和牛肉", Region="日本", Price=3250, IsFavorite = true },
                    new Product { ID=5, Name="麝香猫咖啡豆", Region="印尼", Price=2000, IsFavorite = true },
                    new Product { ID=6, Name="大红袍茶叶", Region="中国", Price=208000, IsFavorite = true },
                    new Product { ID=7, Name="Kona Nigari矿泉水", Region="美国", Price=13000, IsFavorite = true },
                    new Product { ID=8, Name="Diva伏特加", Region="北欧", Price=6500, IsFavorite = false },
                    new Product { ID=9, Name="番红花的雄蕊", Region="地中海", Price=38986, IsFavorite = false },
                };
                bool allChina = products.All(p => p.Region == "中国");
                bool anyChina = products.Any(p => p.Region == "中国");
                int count = products.Count(p => p.ID > 5);
                decimal max = products.Max(p => p.Price);
                int minid = products.Min(p => p.ID);
                decimal avg = products.Average(p => p.Price);
                decimal sum = products.Sum(p => p.Price);
                Product agg = products.Aggregate((total, next) => { total.Price += next.Price; return total; });
    
                string[] select1 = products.Select(p => p.Name).ToArray();
                var select2 = products.Select(p => new { p.ID, p.Name }).ToDictionary(d => d.ID);
                var selectMore = products.Select(p => new { p.ID, p.Name, p.Price }).ToList();
                var lookup = products.ToLookup(l => l.IsFavorite, p => new { p.ID, p.Name, p.Region, p.Price }).ToList();
                lookup.ForEach(l =>
                {
                    Console.WriteLine(l.Key ? "己收" : "未收");
                    l.ToList().ForEach(item => Console.WriteLine("	{0}	{1}	{2}	{3}", item.ID, item.Name, item.Region, item.Price));
                });
    
                var rightorder = products.OrderBy(p => p.IsFavorite).ThenByDescending(p => p.ID).ToList();
                var group = products.GroupBy(p => p.IsFavorite).Select(g => new { IsFavorite = g.Key, SumPrice = g.Sum(item => item.Price), CountItem = g.Count() }).ToList();
                group.ForEach(g => Console.WriteLine("{0}	{1}	{2}", g.IsFavorite, g.SumPrice, g.CountItem));
                //Linq语法
                var grouping = (from p in products
                                group p by p.IsFavorite
                                into g
                                select new { IsFavorite = g.Key, SumPrice = g.Sum(item => item.Price), CountItem = g.Count() }
                                ).ToList();
    
                var ps = (from p in products where p.ID > 4 select new { ID = p.ID, Name = p.Name, Price = p.Price }).ToList();
                foreach (var item in ps)
                {
                    Console.WriteLine("	{0}	{1}	{2}", item.ID, item.Name, item.Price);
                }
    
                var distinct = products.Distinct().ToList();//去重
                var take = products.Take(3).ToList(); //从头取3条记录
                var takewhile = products.TakeWhile(p => p.ID <= 4).ToList(); //从头取记录,满足条件继续,遇到不满足条件停止
                var skip = products.Skip(3).ToList();   //跳过开头3条记录
                var skipwhile = products.SkipWhile(p => p.Price < 10000).ToList(); //当满足条件就跳过,遇到不满足条件就取剩下所有记录
                var contains = products.Where(p => p.Name.Contains("")).ToList(); //Name中包含”红"字
                var first = products.Where(p => p.Name.StartsWith("")).First(); //Name大开头的记录的第一条。无记录报异常
            }
  • 相关阅读:
    Webpack教程二
    Webpack教程一
    整个互联网行业都缺前端工程师?
    Sublime Text 3 搭建 React.js 开发环境
    Javascript的9张思维导图学习
    实现字体外部有描边
    CSS样式重置
    vue使用过滤器 filters:{}
    修改select的默认样式
    onmouseover和onmouseout鼠标移入移出切换图片的几种实现方法
  • 原文地址:https://www.cnblogs.com/TianPing/p/9676484.html
Copyright © 2020-2023  润新知