【问题标题】:how merge list and keep values with linq [duplicate]如何使用 linq 合并列表并保留值 [重复]
【发布时间】:2015-03-05 22:40:38
【问题描述】:
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=10

code    name     number    case
 1       a         10       1
 2       b         7        1
 3       c         9        1

【问题讨论】:

  • 你没有提到它所在的数据结构。这是一个简单的组和总和,但要正确回答你的问题,我们需要看看你到目前为止所做的代码。

标签: c# linq merge


【解决方案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)
});

【讨论】:

  • 如果我的列表中有条件该怎么做,我有 case 列,如果 case 是 1 个数字 +,如果 case 是 2 个数字 -
  • 对不起,我不确定你的意思。
  • 我有一个案例列加代号,如果案例是数字总和的1个值,案例是2个数字减去最后分组,清楚了吗?
  • 不,不清楚。你能用预期的输入和输出编辑问题吗?
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2016-07-31
  • 1970-01-01
  • 2014-09-04
  • 2017-05-10
  • 2017-12-19
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多