首页 > 代码库 > c#获取多个List<class>合并、并将相同条件下的值累计sum
c#获取多个List<class>合并、并将相同条件下的值累计sum
using System;using System.Collections.Generic;using System.Linq;using System.Text;using System.Threading.Tasks;namespace ConsoleApplication1{ class Program { static void Main(string[] args) { List<strudent> one = new List<strudent>(); one.Add(new strudent() { age = 2, name = "aaa" }); one.Add(new strudent() { age = 1, name = "bbb" }); one.Add(new strudent() { age = 3, name = "ddd" }); one.Add(new strudent() { age = 55, name = "fff" }); one.Add(new strudent() { age = 2, name = "ggg" }); one.Add(new strudent() { age = 12, name = "eee" }); List<strudent> two = new List<strudent>(); two.Add(new strudent() { age = 11, name = "aaa" }); two.Add(new strudent() { age = 22, name = "bbb" }); two.Add(new strudent() { age = 33, name = "ddd" }); two.Add(new strudent() { age = 55, name = "fff" }); two.Add(new strudent() { age = 44, name = "ggg" }); two.Add(new strudent() { age = 22, name = "eee" }); two.Add(new strudent() { age = 22, name = "aaaaa" }); var tt = one.Union(two).ToList(); var res = from p in tt group p by new { p.name } into g select new { name = g.Key.name, accp = g.Sum(p => p.age) }; tt.ForEach(x => { Console.WriteLine(x.name + " " + x.age); }); Console.ReadKey(); } } public class strudent { public decimal age { get; set; } public string name { get; set; } } public class StudentListEquality : IEqualityComparer<strudent> { public bool Equals(strudent x, strudent y) { return x.name == y.name; } public decimal sum(strudent x, strudent y) { if (x.name == y.name) { return x.age + y.age; } return 0; } public int GetHashCode(strudent obj) { if (obj == null) { return 0; } else { return obj.ToString().GetHashCode(); } } }}
c#获取多个List<class>合并、并将相同条件下的值累计sum
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。