如何将 foreach 循环的输出合并为一个?

代码就像主项,而IdSub就像主项的子项。1个主项可能有多个子项。


我的代码后面有这个 foreach 代码。


 foreach (var subID in Ids)

     {

          Display display = new Display();


           display.Code = item.Code;

           display.Name = item.Name;

           display.Price = item.Price;

           display.IdSub = subID ;

           DisplayList.Add(display);

    }

由于ID有 3 个subID,所以输出有 3 行数据。我想要的是因为Code、Name、Price与主要项目相同。我希望它与多个IdSub合并为 1 行。我如何合并/合并这些数据?


慕运维8079593
浏览 155回答 2
2回答

慕工程0101907

然后,您需要将类IdSub上的字段/属性更改Display为整数数组:(int[]您可以采用不同的方式,但最好采用 IMO)。然后你可以省略循环:Display display = new Display(){  Code = item.Code,  Name = item.Name,  Price = item.Price,  IdSub = Ids //if Ids is array of ints, else you need to use ToArray() method}DisplayList.Add(display);要显示IdSubwith 绑定的数据,您需要在您的Display类上定义额外的属性:public string IdSubDisplay{  get  {    return string.Join(",", IdSub);  }  set { }}并绑定到IdSubDisplay.

呼如林

您有多种选择可以做到这一点。这是最简单的之一:foreach (var id in itemIds){&nbsp; &nbsp; if (DisplayList.Any(x=> x.Code == item.Code && x.Name == item.Name && x.Price == item.Price))&nbsp; &nbsp; {&nbsp; &nbsp; &nbsp; &nbsp; var display = DisplayList.Single(x=> x.Code == item.Code && x.Name == item.Name && x.Price == item.Price);&nbsp; &nbsp; &nbsp; &nbsp; display.IdSubs.Add(id);//change IdSub to IdSub, as a list of its previous type&nbsp; &nbsp; }&nbsp; &nbsp; else&nbsp; &nbsp; {&nbsp; &nbsp; &nbsp; &nbsp; Display display = new Display();&nbsp; &nbsp; &nbsp; &nbsp; display.Code = item.Code;&nbsp; &nbsp; &nbsp; &nbsp; display.Name = item.Name;&nbsp; &nbsp; &nbsp; &nbsp; display.Price = item.Price;&nbsp; &nbsp; &nbsp; &nbsp; display.IdSubs = new List<int>();//Assumed that IdSub was int&nbsp; &nbsp; &nbsp; &nbsp; DisplayList.Add(display);&nbsp; &nbsp; }}
打开App,查看更多内容
随时随地看视频慕课网APP