我有 3个列表的产品实体密钥,我想将它们整合到一个大清单中。我想要重复项目,因为我想确定哪个产品在最终列表中被提及最多。
我目前正在尝试使用.Union,但这会删除最终列表中的重复项。
//Union selector results
IQueryable<ProductModel> unionProducts = categoryProducts.Union(attOptProducts);
if (manufacturerProducts != null)
unionProducts = unionProducts.Union(manufacturerProducts);
if (brandProducts != null)
unionProducts = unionProducts.Union(brandProducts);
任何帮助都将不胜感激。
答案 0 :(得分:3)
使用Concat
代替Union
来保留重复项:
IQueryable<ProductModel> unionProducts = categoryProducts.Concat(attOptProducts);
if (manufacturerProducts != null)
unionProducts = unionProducts.Concat(manufacturerProducts);
if (brandProducts != null)
unionProducts = unionProducts.Concat(brandProducts);
答案 1 :(得分:0)
也可以通过 .AddRange()方法
来完成IQueryable<ProductModel> unionProducts = categoryProducts.AddRange(attOptProducts);
if (manufacturerProducts != null) unionProducts = unionProducts.AddRange(manufacturerProducts);
if (brandProducts != null) unionProducts = unionProducts.AddRange(brandProducts);