我有两个动态列表,每个列表项包括三个属性:'Id'(int),'LikesRed'(bool)和'LikesBlue'(布尔)。合并两个动态列表并覆盖值
我想合并这两个列表,按照它的'Id'对每个项目进行分组,但我也想用任何'true'值覆盖任何'false'值。
因此,举例来说,这里是数据为我的两个列表:
List1
{ Id = 1, LikesRed = True, LikesBlue = False }
{ Id = 2, LikesRed = True, LikesBlue = False }
{ Id = 4, LikesRed = False, LikesBlue = True }
List2
{ Id = 1, LikesRed = False, LikesBlue = True }
{ Id = 3, LikesRed = False, LikesBlue = True }
{ Id = 4, LikesRed = True, LikesBlue = False }
这里是我想要的结果:
{ Id = 1, LikesRed = True, LikesBlue = True }
{ Id = 2, LikesRed = True, LikesBlue = False }
{ Id = 3, LikesRed = False, LikesBlue = True }
{ Id = 4, LikesRed = True, LikesBlue = True }
我已经成功地合并两个列表(但项目没有分组)使用以下内容:
var results = list1.Concat(list2);
我也试图将这个列表中的项目用LI NQ(它的工作原理,但我不知道我能/应该用它做):
var final = from x in results
group x by x.Id into g
select g;
谁能提供任何意见,我怎么能实现我的目标是什么?
https://msdn.microsoft.com/en-us/library/bb545971.aspx – Banana