标签:style blog color io os ar for sp div
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
标签:style blog color io os ar for sp div
原文地址:http://www.cnblogs.com/zxbzl/p/4028852.html