【发布时间】:2021-10-08 00:29:29
【问题描述】:
我需要将 IEnumerable 转换为其他东西才能使用 Sum。我该怎么做才能做到这一点?
CsTotCommit = h.Sum(x => x.CSTotCommit)
我收到一条错误消息,指出: CapStackTrancheDTO 不包含接受 CapStackTrancheDTO 类型的第一个参数的“Sum”的定义。
IEnumerable<CapStackTrancheDTO> debtRank = debt.AsEnumerable()
.Select((g,index) =>
new CapStackTrancheDTO
{
Rankid = index + 1,
CsTrancheId = g.CsTrancheId,
CsId = g.CsId,
CsTotCommit = g.CsTotCommit,
});
IEnumerable<CapStackTrancheDTO> debtSum = debtRank
.Select(h =>
new
{
CsId = h.CsId,
CsTotCommit = h.Sum(x => x.CSTotCommit)
});
以下是类定义:
public class CapStackTrancheDTO
{
public int? Rankid { get; set; }
public int? CsTrancheId { get; set; }
public int? CsId { get; set; }
public decimal? CsTotCommit { get; set; }
}
我想按 CsId 和 SUM 对多条记录进行分组。
【问题讨论】:
-
你需要把它转换成什么?
-
我想我只是希望能够总结 CSTotCommit。我添加了我的错误消息。
-
您需要在其中添加类定义,以便我们了解所涉及的类型。
-
我已经添加了类定义
-
那么在
debtRank中是否有多个CapStackTrancheDTO实例具有相同的CsId?我正在尝试弄清楚 Sum 在这里有什么用处,因为你只有一个十进制值。
标签: c# entity-framework linq ienumerable