List<Product> List = new List<Product> {
new Product{StockNum=1,ProductNo="01",Tag="a"},
new Product{StockNum=2,ProductNo="01",Tag="b"},
new Product{StockNum=3,ProductNo="02",Tag="c"},
new Product{StockNum=4,ProductNo="02",Tag="d"},
new Product{StockNum=5,ProductNo="03",Tag="e"},
};
//使用Linq根据集合中ProductNo合并相同的Tag
List<Product> Result = new List<Product>();
var group = MemberList.GroupBy(p => p.ProductNo);
foreach (IGrouping<string, Product> groupSequence in group)
{
Product m = new Product()
{
//将相同ProductNo的Tag内容合并
ProductNo= groupSequence.First().ProductNo,
Tag= string.Join(",", groupSequence.Select(t =>
t.Tag).ToArray())
};
Result.Add(m);
}
//数据集返回前50条数据
Result = Result.Take(50).ToList<Product>();
/// <summary>
/// 产品实体类
/// </summary>
public class Product
{
/// <summary>
/// 库存
/// </summary>
public int StockNum { set; get; }
/// <summary>
/// 产品编号
/// </summary>
public String ProductNo { set; get; }
/// <summary>
/// 附属标签
/// </summary>
public String Tag { set; get; }
}