代码类似于主体,而 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行数据。我想要的是因为代码,名称,价格与主要项目相同。我希望它与几个 IdSub 合并为1行。如何合并/合并这些数据?
答案 0 :(得分:0)
然后,您需要将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);
要显示具有绑定的IdSub
数据,您需要在Display
类上定义其他属性:
public string IdSubDisplay
{
get
{
return string.Join(",", IdSub);
}
set { }
}
并绑定到IdSubDisplay
。
答案 1 :(得分:0)
您可以选择几种方法。这是最简单的之一:
foreach (var id in itemIds)
{
if (DisplayList.Any(x=> x.Code == item.Code && x.Name == item.Name && x.Price == item.Price))
{
var display = DisplayList.Single(x=> x.Code == item.Code && x.Name == item.Name && x.Price == item.Price);
display.IdSubs.Add(id);//change IdSub to IdSub, as a list of its previous type
}
else
{
Display display = new Display();
display.Code = item.Code;
display.Name = item.Name;
display.Price = item.Price;
display.IdSubs = new List<int>();//Assumed that IdSub was int
DisplayList.Add(display);
}
}