来自具有相同 属性 个值的集合的 Select 个对象
Select objects from a collection with same property values
有没有简单的方法 select 具有相同 currencyId 的成员,以便我可以将它们相互求和,或者如果每个 currencyId 都有,我是否需要做其他事情?
if(model.CurrencyId == -1)
{
resultModel.Add(new ReportModel
{
AccountName = "Sum",
BalanceSum = resultModel.Where(q => q.CurrencyId == 1).Sum(q => q.Balance)
});
}
else
{
resultModel.Add(new ReportModel
{
AccountName = "Sum",
BalanceSum = resultModel.Sum(q => q.Balance)
});
}
要获得每种货币的余额总和,您可以执行 groupBy
,然后是 select
& sum
。
例如:
var balanceSum = t.GroupBy(q => q.CurrencyId)
.Select(q => q.Sum(x => x.Balance));
要将其添加到 resultModel,您可以执行以下操作:
var reportData = t.GroupBy(q => q.CurrencyId)
.Select(q => new ReportModel()
{
AccountName = "Sum",
BalanceSum = q.Sum(x => x.Balance)
});
resultModel.AddRange(reportData);
如果数据只分配给resultModel一次,那么你可以用equals替换AddRange。
有没有简单的方法 select 具有相同 currencyId 的成员,以便我可以将它们相互求和,或者如果每个 currencyId 都有,我是否需要做其他事情?
if(model.CurrencyId == -1)
{
resultModel.Add(new ReportModel
{
AccountName = "Sum",
BalanceSum = resultModel.Where(q => q.CurrencyId == 1).Sum(q => q.Balance)
});
}
else
{
resultModel.Add(new ReportModel
{
AccountName = "Sum",
BalanceSum = resultModel.Sum(q => q.Balance)
});
}
要获得每种货币的余额总和,您可以执行 groupBy
,然后是 select
& sum
。
例如:
var balanceSum = t.GroupBy(q => q.CurrencyId)
.Select(q => q.Sum(x => x.Balance));
要将其添加到 resultModel,您可以执行以下操作:
var reportData = t.GroupBy(q => q.CurrencyId)
.Select(q => new ReportModel()
{
AccountName = "Sum",
BalanceSum = q.Sum(x => x.Balance)
});
resultModel.AddRange(reportData);
如果数据只分配给resultModel一次,那么你可以用equals替换AddRange。