Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/ruby-on-rails/68.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# LINQ:不同元素的和()_C#_Linq - Fatal编程技术网

C# LINQ:不同元素的和()

C# LINQ:不同元素的和(),c#,linq,C#,Linq,鉴于以下清单: (TABLE1) Expedient Amount 1 10 1 10 2 3 2 3 3 4 我想计算不同权宜之计的“金额”之和。因此,总金额应为: 10 (from Expedient 1) + 3 (from Expediente 2) + 4 (from Expedient 3) = 10 + 3 + 4 = 17 类似于以下SQL语句的内容: Select SUM(Amou

鉴于以下清单:

(TABLE1)
Expedient Amount 
1         10
1         10 
2         3
2         3
3         4
我想计算不同权宜之计的“金额”之和。因此,总金额应为:

10 (from Expedient 1) + 
 3 (from Expediente 2) + 
 4 (from Expedient 3) = 
10 + 3 + 4 = 17
类似于以下SQL语句的内容:

Select SUM(Amount) from 
(Select Distinct Expedient, Amount from TABLE1) DummyTable

在我脑子里,像这样的事情应该会起作用:

TABLE1
    .GroupBy(t => new {t.Expedient, t.Amount})
    .Select(g => g.FirstOrDefault())
    .Sum(item => item.Amount);

在我脑子里,像这样的事情应该会起作用:

TABLE1
    .GroupBy(t => new {t.Expedient, t.Amount})
    .Select(g => g.FirstOrDefault())
    .Sum(item => item.Amount);

斯彭德的解决方案恰到好处。如果您想更紧凑一点(这就是LINQ),请使用
GroupBy

Table1.GroupBy(t => new {t.Expedient, t.Amount}, (t, g) => g.First()).Sum(g => g.Amount)

斯彭德的解决方案恰到好处。如果您想更紧凑一点(这就是LINQ),请使用
GroupBy

Table1.GroupBy(t => new {t.Expedient, t.Amount}, (t, g) => g.First()).Sum(g => g.Amount)
试用代码:

 var result = (from p in tabledetails.AsEnumerable()
                      group p by p.id into jj
                      select new table1
                      {
                          id = jj.FirstOrDefault().id,
                          value = jj.ToList().Max(c => c.value)
                      }).ToList().Sum(c => c.value);
试用代码:

 var result = (from p in tabledetails.AsEnumerable()
                      group p by p.id into jj
                      select new table1
                      {
                          id = jj.FirstOrDefault().id,
                          value = jj.ToList().Max(c => c.value)
                      }).ToList().Sum(c => c.value);

请出示相关的C#code和您的车型类别如果您对相同的
权宜之计有不同的
金额
编号,您会怎么做?您如何选择?此处无主要详细信息,权宜之计的金额始终相同。请显示相关的C代码和您的型号类别。如果相同的
权宜之计
数量不同,您会怎么做?如何选择?此处没有主详细信息,权宜之计总是有相同的金额
GroupBy()
有一个重载,它需要两个选择器,这将使其更短。另外
Sum()
也可以使用选择器。
TABLE1.GroupBy(t=>new{t.phamport,t.Amount},t2=>t2.Amount).Sum()
应该这样做。@dotNET您的意思是像.GroupBy(t=>new{t.phastict,t.Amount}).Sum(x=>x.FirstOrDefault().Amount)@Txaran:看我的答案。
GroupBy()
有一个重载,需要两个选择器,这会使它变短。
Sum()
也可以使用一个选择器。
TABLE1.GroupBy(t=>new{t.phamplit,t.Amount},t2=>t2.Amount)。Sum()
应该这样做。@dotNET你是指像.GroupBy(t=>new{t.phamplit,t.Amount}.Sum})这样的东西吗(x=>x.FirstOrDefault().Amount);?@Txaran:看我的答案。