zoukankan      html  css  js  c++  java
  • 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();
                }
            }
        }
    
    }
  • 相关阅读:
    HTK(V3.1)基础指南中文版(转载)
    声纹识别公司Neurotechnology
    微软亚洲研究院语音组的研究成果
    Matlab P文件——加快Matlab程序,保护你的算法
    Intel嵌入式事业部的4条线
    语音增强国外牛人
    NHibernate Linq 的 join (联合查询) 的例子
    NHibernate HQL 函数例子
    使用TQ作在线客服系统
    ADI的SHARC系列处理器的内核PLL管理(4.2)
  • 原文地址:https://www.cnblogs.com/zxbzl/p/4028852.html
Copyright © 2011-2022 走看看