linq头脑风暴001_聚合函数

   求最大值Max()
   最小值Min()
   平均值Average()
   总个数Count()
   求和Sum()

1、实体Bean

    public class Tuzi
    {
        public int Id { get; set; }
        public int Age { get; set; }
        public string Name { get; set; }
    }

2、实体初始化器

  static List<Tuzi> InitTuziInfo()
        {
            List<Tuzi> tuziList = new List<Tuzi> { 
             new Tuzi{ Name="Tuzi001", Age=10  },
             new Tuzi{ Name="Tuzi002", Age=24 },
             new Tuzi{ Name="Tuzi003", Age=33  },
             new Tuzi{ Name="Tuzi004", Age=47  },
             new Tuzi{ Name="Tuzi005", Age=59 },
             new Tuzi{ Name="Tuzi006", Age=65  },
             new Tuzi{ Name="Tuzi007", Age=76  },
             new Tuzi{ Name="Tuzi008", Age=80  } 
             };
            return tuziList;
        }

3、结果

 static void Main(string[] args)
        {
            List<Tuzi> tuziList = InitTuziInfo();
            #region 001 聚合函数
            int maxAge = (from s in tuziList
                          select s).Max(a => a.Age);
            Console.WriteLine("年龄最大的是:" + maxAge);
            //Lambda 形式
            int minAge = tuziList.Select(a => a.Age).Min();
            //==>编辑为
            //minAge = tuziList.Select<Tuzi, int>(delegate(Tuzi t)
            //{
            //    return t.Age;
            //}).Min();
            Console.WriteLine("年龄最小的是:" + minAge);

            int avgAge = (int)tuziList.Select(a => a.Age).Average();
            Console.WriteLine("年龄平均为:" + avgAge);
            avgAge = (int)tuziList.Where(a => a.Age != maxAge && a.Age != minAge).Average(a => a.Age);
            Console.WriteLine("去除最高,最低后的年龄平均为:" + avgAge);
            int ageCount = (int)tuziList.Select(a => a.Age).Count();
            Console.WriteLine("年龄总个数为:" + ageCount);

            int ageSum = (int)tuziList.Select(a => a.Age).Sum();
            Console.WriteLine("年龄和为:" + ageSum);
            #endregion 
   
            Console.ReadKey();
        }
原文地址:https://www.cnblogs.com/zjflove/p/3090636.html