我有两个嵌套的foreach语句Aspect Id和Aspect只返回单个记录作为最终结果。我有11个活动,其中一些方面与3个项目配对作为AspecId和Aspect但在循环后我只得到一个显示在我的报告看点我错过了什么。
foreach (RiskActivity found in activities)
{
List<RiskAspect> aspects = RiskProvider.ListRiskAspect(found.Id).ToList();
DataRow impactRow = impactTable.NewRow();
impactRow.SetField("ActivityId", found.Id);
impactRow.SetField("Activity", found.Activity);
impactRow.SetField("OrderNumber", found.OrderNumber);
foreach (RiskAspect riskAspect in aspects)
{
impactRow.SetField("AspectId", riskAspect.Id);
impactRow.SetField("Aspect", riskAspect.AspectHazard);
}
答案 0 :(得分:0)
第二个循环应该只创建聚合的AspectId和Aspect。然后将它们更新到列:
var ids = new StringBuilder();
var aspects = new StringBuilder();
foreach (RiskAspect riskAspect in aspects)
{
ids.AppendLine(riskAspect.Id); // You can use Append to keep in the same line
aspects.AppendLine(riskAspect.AspectHazard);
}
impactRow.SetField("AspectId", ids.ToString());
impactRow.SetField("Aspect", aspects.ToString());