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();
            }
        }
    }

}
时间: 2024-11-09 00:33:07

c#获取多个List<class>合并、并将相同条件下的值累计sum的相关文章

强制获取序列下一个值/当前值(oracle函数)

推荐 作者:靓仔小伙计 作者:周公 oracle创建序列: 先假设有这么一个表: create table S_Depart ( DepartId INT not null, DepartName NVARCHAR2(40) not null, DepartOrder INT default 0, constraint PK_S_DEPART primary key (DepartId) ); 在Oracle中sequence就是所谓的序列号,每次取的时候它会自动增加,一般用在需要按序列号排序的

合并当前工作簿下的所有工作表

Sub 合并当前工作簿下的所有工作表() Dim j As Single Application.ScreenUpdating = False For j = 1 To Sheets.Count If Sheets(j).Name <> ActiveSheet.Name Then X = Range("A65536").End(xlUp).Row + 1 Sheets(j).UsedRange.Copy Cells(X, 1) End If Next Range("

合并一个工作簿下的多个工作表

工作中经常会碰到需要合并多个sheet,下面用VBA来解决此问题,代码如下: Sub 合并当前工作簿下的所有工作表() Application.ScreenUpdating = False For j = 1 To Sheets.Count    If Sheets(j).Name <> ActiveSheet.Name Then        X = Range("A1048576").End(xlUp).Row + 1        Sheets(j).UsedRang

如何用jquery获取&lt;input id=&quot;test&quot; name=&quot;test&quot; type=&quot;text&quot;/&gt;中输入的值?

如何用jquery获取<input id="test" name="test" type="text"/>中输入的值?$(" #test ").val()$(" input[ name='test' ] ").val()$(" input[ type='text' ] ").val()$(" input[ type='text' ]").attr(&quo

C# 获取文件路径,读取项目中某程序集下文件

获取文件路径 ------------------------------------------------------------------------- winform获取文件路径: string str1 =Process.GetCurrentProcess().MainModule.FileName;//获得当前执行的exe的文件名.string str2=Environment.CurrentDirectory;//获取和设置当前目录的完全限定路径.string str3=Dire

js 获取手机浏览器类型,修改css文件的class的值

/*========================================= 函数功能:获取浏览器类型 =========================================*/ function getBrowser() { var type = "pc" var ua = navigator.userAgent.toLowerCase(); /* Navigator 是HTML DOM中的内置对象,它包含有关浏览器的信息.userAgent是Navigator

2015-07-22 JQuery 第二课(JQ元素获取,添加,删除,判断,遍历,取值,样式设置,改变对象,切换)

1.获取元素: 1).size(): 获取元素的个数. $(“img”).size():获取有多少个img. 2).eq():获取元素. $(“img[title]”).eq(1):获取第二个带有title属性的img标签. 也可以写作: $(“img[title]”)[1],此括号里的1代表索引1,所以是对应第二个,一般多用eq(). 3).get() :获得由选择器指定的DOM元素. x=$("p").get(0):获取第一个 p 元素的值. 4)index():获取某项标签的索引

jQuery 获取jsp页面中用iframe引入的jsp页面中的值

<iframe scrolling="no" src="<c:url value='/unitBaseperson/view.do?para=9&op=send&type=xls'/>" id="main" frameborder="0" width="400"></iframe> <!--在a.jsp页面中--> 假如我的jsp页面包含这样一

合并列表中某一个键值相同的dict

代码: def main(): persons = [{"user_id":2009, "name":"zpf", "sex":"man"} ,{"user_id":2010, "name":"ly","sex":"man"} ,{"user_id":2009,"name&quo