添加两个列表和重复的C#MVC

时间:2015-07-27 12:55:33

标签: c# asp.net-mvc linq

我有 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);

任何帮助都将不胜感激。

2 个答案:

答案 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);