2个回答
展开全部
首先,你的结果应该用户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看看。
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询