C# List类型分组求和

本文通过一个具体的C#代码示例,展示了如何使用LINQ进行数据分组和聚合操作,具体包括创建Person对象列表,根据姓名和年龄进行分组,并计算每个分组的工资总和。
        static void Main(string[] args)
        {           
            List<Person> personList = new List<Person>();
            Person p1 = new Person();
            p1.Name = "Bob";
            p1.Age = "14";           
            p1.Salary = 1200;
            personList.Add(p1);
            Person p2 = new Person();
            p2.Name = "Bob";
            p2.Age = "14";           
            p2.Salary = 1500;
            personList.Add(p2);
            Person p3 = new Person();
            p3.Name = "Ken";
            p3.Age = "56";        
            p3.Salary = 1000;
            personList.Add(p3);             
            var groupList = personList.GroupBy(m => new { m.Name, m.Age }).
                        Select(a => new
                        {
                            Name = a.Key.Name,
                            Salary = a.Sum(c=>c.Salary)
                        }).ToList();
            foreach (var item in groupList)
            {
                Console.WriteLine("Name:{0}--Salary:{1}", item.Name,item.Salary);
            }
            Console.ReadKey();
        }

 

C#中,对`List<>`数据集进行求和操作可以根据列表中元素的类型采用不同的方法。以下是几种常见的情况及示例代码: ### 对`List<int>`求和 当列表元素为整数类型时,可以使用`Sum`扩展方法来实现求和。 ```csharp using System; using System.Collections.Generic; using System.Linq; class Program { static void Main() { List<int> numbers = new List<int> { 1, 2, 3, 4, 5 }; int sum = numbers.Sum(); Console.WriteLine(sum); } } ``` ### 对`List<double>`求和 如果列表元素是双精度浮点数类型,同样可以使用`Sum`扩展方法。 ```csharp using System; using System.Collections.Generic; using System.Linq; class Program { static void Main() { List<double> doubles = new List<double> { 1.1, 2.2, 3.3, 4.4, 5.5 }; double sum = doubles.Sum(); Console.WriteLine(sum); } } ``` ### 对自定义类型列表中的某个属性求和 若列表元素是自定义类型,需要指定对哪个属性进行求和。 ```csharp using System; using System.Collections.Generic; using System.Linq; class Person { public int Age { get; set; } } class Program { static void Main() { List<Person> people = new List<Person> { new Person { Age = 20 }, new Person { Age = 25 }, new Person { Age = 30 } }; int totalAge = people.Sum(p => p.Age); Console.WriteLine(totalAge); } } ``` ### 手动循环求和 除了使用`Sum`扩展方法,还可以通过手动循环来实现求和。 ```csharp using System; using System.Collections.Generic; class Program { static void Main() { List<int> numbers = new List<int> { 1, 2, 3, 4, 5 }; int sum = 0; foreach (int num in numbers) { sum += num; } Console.WriteLine(sum); } } ```
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值