如何使用 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)
});