public class Budget
{
public string SeasonNo { get; set; }
public string SeasonName { get; set; }
public string typeProductCd { get; set; }
public string typeProductDescription { get; set; }
public Decimal UsdBudgetRetail { get; set; }
}
List<Budget> list1
List<Budget> list2
List<Budget> ListUngrouped =
list1.Concat(list2).ToList();
List<Budget> listGrouped = ListUngrouped
.GroupBy(x => new { x.SeasonNo, x.typeProductCd })
.Select(group => new { group.Key, UsdBudgetRetail = group.Sum(x => x.UsdActualRetail) })
.Cast<BudgetAndActualLineInfoBySeasonDto>()
.ToList();
回答
你很难完成什么。这里有一些问题,你的代码,因为它代表现在,将需要解决的问题:
Budget
不包含UsdActualRetail
定义。List<BudgetAndActualLineInfoBySeasonDto>
不能铸造到List<Budget>
。group
对象不能隐式转换为BudgetAndActualLineInfoBySeasonDto
。- 我已经修复了
BUDGET
,concat
和toList
的拼写错误。 - 为了让分组正常工作,您需要为您的GroupBy对象提供一个自定义实现以进行相等比较。
制作的教育要如何此代码工作和其他失踪类的定义可能是什么猜测一群野生的,这里是一个(LinqPad就绪)complete working code sample,显示分组值和资金,用自定义的工作落实平等:
void Main()
{
List<Budget> list1 = new List<Budget>() {
new Budget { SeasonNo = "1", SeasonName = "Test 1", typeProductCd = "3", UsdActualRetail = 1.01m },
new Budget { SeasonNo = "1", SeasonName = "Test 2", typeProductCd = "3", UsdActualRetail = 1.01m },
new Budget { SeasonNo = "1", SeasonName = "Test 3", typeProductCd = "3", UsdActualRetail = 1.01m },
new Budget { SeasonNo = "1", SeasonName = "Test 4", typeProductCd = "3", UsdActualRetail = 1.01m },
};
List<Budget> list2 = new List<Budget>() {
new Budget { SeasonNo = "2", SeasonName = "Test 5", typeProductCd = "4", UsdActualRetail = 1.02m },
new Budget { SeasonNo = "2", SeasonName = "Test 6", typeProductCd = "4", UsdActualRetail = 1.02m },
new Budget { SeasonNo = "2", SeasonName = "Test 7", typeProductCd = "4", UsdActualRetail = 1.02m },
};
List<Budget> listUngrouped = list1.Concat(list2).ToList();
List<BudgetAndActualLineInfoBySeasonDto> listGrouped =
listUngrouped
.GroupBy(x => new SeasonDto { SeasonNo = x.SeasonNo, typeProductCd = x.typeProductCd })
.Select(group => new BudgetAndActualLineInfoBySeasonDto {
SeasonDto = group.Key,
UsdBudgetRetail = group.Sum(x => x.UsdActualRetail)
})
.Cast<BudgetAndActualLineInfoBySeasonDto>()
.ToList();
Console.WriteLine(listGrouped);
}
// Define other methods and classes here
public class SeasonDto
{
public string SeasonNo { get; set; }
public string typeProductCd { get; set; }
public override bool Equals(object other)
{
SeasonDto otherS = other as SeasonDto;
if (otherS != null)
{
return this.SeasonNo.Equals(otherS.SeasonNo) &&
this.typeProductCd.Equals(otherS.typeProductCd);
}
else
{
return false;
}
}
public override int GetHashCode()
{
return SeasonNo.GetHashCode() + typeProductCd.GetHashCode();
}
}
public class BudgetAndActualLineInfoBySeasonDto
{
public SeasonDto SeasonDto { get; set; }
public decimal UsdBudgetRetail { get; set; }
}
public class Budget
{
public string SeasonNo { get; set; }
public string SeasonName { get; set; }
public string typeProductCd { get; set; }
public string typeProductDescription { get; set; }
public Decimal UsdActualRetail { get; set; }
}
希望这有助于!如果您能够大幅改善您的问题,我们将能够更好地为您提供帮助。
嗨,谢谢你的回复,是的,我在属性上有些错误,但我会解释主要的想法。我有多个预算列表,我想按季节分组,比按类型产品CD – user847236
嗨,感谢您的回复,是的,我在属性中有些错误,但我会解释主要想法。我有多个预算清单,我想按季节分组,首先按照产品类型进行分组,然后制作共享相同UsdActualRetail元素的USDActual零售总额。我希望新的列表,因此我可以管理它在报告中显示它,没有BudgetAndActualLineInfoBySeasonDto它只是预算(我的dto)和UsdBudgetRetail是UsdActualRetail – user847236
- 1. LINQ的GROUP BY和总和
- 2. 名单通过LINQ
- 3. LINQ Group通过小计和合计
- 4. GROUP BY列和汇总列到名单
- 5. Linq Group通过编号
- 6. LINQ GROUP BY和
- 7. GROUP BY和LINQ
- 8. C#Linq Group通过问题,可能真的很简单!
- 9. LINQ GROUP BY和MAX()
- 10. linq,group by和count
- 11. LINQ GROUP BY和SUM
- 12. 通过名称跨列的SQL总和
- 13. LINQ XML总和的IEnumerable <string>
- 14. LINQ的GROUP BY和总和与多个表
- 15. Linq Group得到总体的百分比
- 16. 总和DATEDIFF和group by
- 17. 组通过总和
- 18. 通过名单
- 19. (通常lisp)展平和通过名单
- 20. LINQ的加入4名单<T>
- 21. LINQ的加入3名单<T>
- 22. LINQ的名单<>问题
- 23. 使用LINQ for Group和Sum
- 24. LINQ的GROUP BY和值相加另一列添加总结
- 25. 获取一个字段的总和Linq中与GROUP BY
- 26. Mysql Multi Group通过
- 27. Group通过在Cassandra中使用日期,名称和数量
- 28. GROUP BY列总和忽略
- 29. SELECT DISTINCT总和 - GROUP BY
- 30. 总和与GROUP BY的XQuery
你的问题是什么?如果您需要帮助,您可能需要澄清您的需求。 – Taryn
“UsdActualRetail”的定义在哪里? “BudgetAndActualLineInfoBySeasonDto”在哪里定义?如何填充'list1'和'list2'?你如何将'List'转换为'List '?你得到的行为是什么,预期的行为是什么?如果您遇到异常,请发送异常消息和行号。你能否提供一个*完整的*,**工作**代码样本来证明你遇到的问题? –
mellamokb