LINQ:Sum Max Min Average
这边以Sum为例,Max,Min,Average用法类似
一、 Array
static void SumArray() { Console.WriteLine("SumArray:"); int[] intNumbers = new int[] { 10, 30, 50, 40, 60, 20, 70, 90, 80, 100 }; //Using Method Syntax int MSTotal = intNumbers.Sum(); //Using Query Syntax int QSTotal = (from num in intNumbers select num).Sum(); Console.WriteLine("Sum = " + QSTotal); } static void SumArrayWithFilter() { Console.WriteLine("SumArrayWithFilter:"); int[] intNumbers = new int[] { 10, 30, 50, 40, 60, 20, 70, 90, 80, 100 }; //Using Method Syntax int MSTotal = intNumbers.Where(num => num > 50).Sum(); //Using Query Syntax int QSTotal = (from num in intNumbers where num > 50 select num).Sum(); Console.WriteLine("Sum = " + QSTotal); } static void SumArrayWithPredicate() { Console.WriteLine("SumArrayWithPredicate:"); int[] intNumbers = new int[] { 10, 30, 50, 40, 60, 20, 70, 90, 80, 100 }; //Using Method Syntax with a Predicate int MSTotal = intNumbers.Sum(num => { if (num > 50) return num; else return 0; }); Console.WriteLine("Sum = " + MSTotal); }
测试结果如下:

二、Complex Type
1.数据准备
public class Employee { public int ID { get; set; } public string Name { get; set; } public int AddressId { get; set; } public int DepartmentId { get; set; } public int Salary { get; set; } public static List<Employee> GetAllEmployees() { return new List<Employee>() { new Employee { ID = 1, Name = "张三", AddressId = 1,Salary = 10000, DepartmentId=10}, new Employee { ID = 2, Name = "李四", AddressId =2,Salary = 20000, DepartmentId=20}, new Employee { ID = 3, Name = "王五", AddressId = 0,Salary = 15000, DepartmentId=0}, new Employee { ID = 4, Name = "钱六", AddressId = 0,Salary = 10000, DepartmentId=0}, new Employee { ID = 5, Name = "郑七", AddressId = 5,Salary = 30000, DepartmentId=0}, new Employee { ID = 6, Name = "苏八", AddressId = 6,Salary = 50000, DepartmentId=10} }; } }
2.Sum
static void Sum() { Console.WriteLine("SumComplexType:"); //Using Method Syntax Console.WriteLine("方式一:"); var TotalSalaryMS = Employee.GetAllEmployees() .Sum(emp => emp.Salary); Console.WriteLine("Sum Of Salary = " + TotalSalaryMS); //Using Query Syntax Console.WriteLine("方式二:"); var TotalSalaryQS = (from emp in Employee.GetAllEmployees() select emp).Sum(e => e.Salary); Console.WriteLine("Sum Of Salary = " + TotalSalaryQS); } static void SumWithWhere() { Console.WriteLine("SumComplexTypeWithFilter:"); //Using Method Syntax Console.WriteLine("方式一:"); var TotalSalaryMS = Employee.GetAllEmployees() .Where(emp => emp.DepartmentId == 10) .Sum(emp => emp.Salary); Console.WriteLine("Sum Of Salary = " + TotalSalaryMS); //Using Query Syntax Console.WriteLine("方式二:"); var TotalSalaryQS = (from emp in Employee.GetAllEmployees() where emp.DepartmentId == 10 select emp).Sum(e => e.Salary); Console.WriteLine("Sum Of Salary = " + TotalSalaryQS); }
3.测试结果如下:

三、参考网址
https://dotnettutorials.net/lesson/linq-sum-method/
本文来自博客园,转载请注明原文链接:https://www.cnblogs.com/keeplearningandsharing/p/16628511.html
浙公网安备 33010602011771号