c#集合问题求解答

如果有相同的用户名,就把数据想加,如果没有相同的用户名就加到list1中... 如果有相同的用户名,就把数据想加,如果没有相同的用户名就加到list1中 展开
 我来答
xu3180497
2018-09-18 · TA获得超过1659个赞
知道小有建树答主
回答量:390
采纳率:66%
帮助的人:191万
展开全部

首先,你的结果应该用户a的数据应该是 1+10 = 11, 3+8 =11,不知道这个9是怎么的来的。

具体可以参考以下写法:

            //list1初始化并赋值
            List<udfList> list1 = new List<udfList>();
            udfList[] us = new udfList[3];
            list1.Add(new udfList { username = "用户a", data_1 = 1, data_2 = 3 });
            list1.Add(new udfList { username = "用户b", data_1 = 2, data_2 = 9 });
            list1.Add(new udfList { username = "用户c", data_1 = 4, data_2 = 6 });
            //list2初始化并赋值
            List<udfList> list2 = new List<udfList>();
            list2.Add(new udfList { username = "用户d", data_1 = 8, data_2 = 9 });
            list2.Add(new udfList { username = "用户a", data_1 = 10, data_2 = 8 });
            list2.Add(new udfList { username = "用户e", data_1 = 9, data_2 = 6 });
            list2.Add(new udfList { username = "用户h", data_1 = 15, data_2 = 18 });
            //list1和list2合并不去重
            list1 = list1.Concat(list2).OrderBy(p => p.username).ToList();
            //list1分组重新取数据组合新的List
            list1 = list1.GroupBy(x => x.username).Select(p => new udfList { username = p.Key, data_1 = p.Sum(y => y.data_1), data_2 = p.Sum(y => y.data_2) }).ToList();
//自定义类
        public class udfList
        {
            public string username { get; set; }
            public int data_1 { get; set; }
            public int data_2 { get; set; }
        }

具体结果可以自己调试下list1看看。

阳光的雷咩咩
2018-09-17 · TA获得超过1.4万个赞
知道大有可为答主
回答量:2.3万
采纳率:66%
帮助的人:7657万
展开全部
思路:linq
在C#里表现为什么数据结构(类型)?
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 1条折叠回答
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式