如何使用 linq 合并列表并保留值
how merge list and keep values with linq
code name number case
1 a 5 1
2 b 9 1
1 a 6 1
3 c 8 1
2 b 1 1
1 a 1 2
2 b 3 2
3 c 1 1
如果 case 是 1 => number+=number ,如果 case 是 2 number-=number 并且我想用 linq
创建这个列表
例如
第三行代码中的第一个是 1,大小写是 1
第三行加上第一行的数字,数字=11
第六行cod为1,case为2,则number减去,number=10
code name number case
1 a 10 1
2 b 7 1
3 c 9 1
这会做你想做的事:
var result = dataList.GroupBy(x => x.Id).Select(grouping => new
{
Id = grouping.First().Id,
Name = grouping.First().Name,
Number = grouping.Sum(x => x.CaseId == 2 ? -x.Number : x.Number)
});
code name number case
1 a 5 1
2 b 9 1
1 a 6 1
3 c 8 1
2 b 1 1
1 a 1 2
2 b 3 2
3 c 1 1
如果 case 是 1 => number+=number ,如果 case 是 2 number-=number 并且我想用 linq
创建这个列表例如 第三行代码中的第一个是 1,大小写是 1 第三行加上第一行的数字,数字=11
第六行cod为1,case为2,则number减去,number=10
code name number case
1 a 10 1
2 b 7 1
3 c 9 1
这会做你想做的事:
var result = dataList.GroupBy(x => x.Id).Select(grouping => new
{
Id = grouping.First().Id,
Name = grouping.First().Name,
Number = grouping.Sum(x => x.CaseId == 2 ? -x.Number : x.Number)
});