将两个IEnumerable列表中的数据合并/合并为一个

我的应用程序中有以下域对象:
 [Serializable]
    public class Supplier
    {
        public virtual string SupplierType { get; set; }
        public virtual string SupplierCode { get; set; }

        public virtual string Name { get; set; }
        public virtual string Description { get; set; }
        public virtual string Rating { get; set; }
        public virtual string WebsiteURL { get; set; }

        public virtual IList<Address> Address { get; set; }

    }

    [Serializable]
    public class CargoSupplier : Supplier
    {
        public virtual IList<Image> Images { get; set; }
        public virtual string OpeningTime { get; set; }
        public virtual string ClosingTime { get; set; }

        public virtual IList<Product> Products { get; set; }
    }
我必须转到两个单独的存储库来获取描述性内容(来自数据库)和定价(来自外部Web服务),并且将有两个单独的枚举填充数据(描述性内容和定价):
IEnumerable<CargoSupplier> cargoSuppliers_Pricing
IEnumerable<CargoSupplier> cargoSuppliers_Content
cargoSuppliers_Content将使用数据EXCEPT
IList<Product>
填充所有字段,cargoSuppliers_Pricing将包含填充数据的
SupplierType, SupplierCode and IList<Product>
字段。 “SupplierType”和“SupplierCode”的组合将是关键。 现在我必须将内容和定价合并到一个枚举中,这样我就可以将
IEnumerable<CargoSupplier> cargoSuppliers
返回到我的Controllers&amp;视图。合并/合并这两个列表的最佳方法是什么?     
已邀请:
听起来你不希望一个列表只包含任何列表中的所有项目 - 听起来你需要合并单个项目。像这样的东西:
var query = from pricing in cargoSuppliers_Pricing
            join content in cargoSuppliers_Content
            on pricing.SupplierCode equals content.SupplierCode
            select new CargoSupplier
            {
                // Copy properties from both objects here
            };
在“选择”部分中,您将从“定价”中获取定价部分,从“内容”中获取内容部分,构建具有两个位的CargoSupplier对象。 这就是你追求的吗?     
你在寻找联盟还是我错过了一些问题?
var mergedList = list1.Union(list2).ToList();
记得导入
System.Linq
名称空间     
使用
Enumerable.Concat
:   连接两个序列。 例:
var result = cargoSuppliers_Content.Concat(cargoSuppliers_Pricing);
    
看过Union()扩展方法?那应该做你的事
IEnumerable<CargoSupplier> allCargoSuppliers = cargoSuppliers_Pricing.Union(cargoSuppliers_Content);
    

要回复问题请先登录注册