按id将两个不同的列表合并为一个列表

本文关键字:列表 合并 一个 两个 id | 更新日期: 2023-09-27 17:59:24

我有两个不同对象的不同列表。然后我得到了一个视图模型的列表,其中包含两个对象的属性,我希望将它们加入到该列表中。

    //Product
    public string id { get; set; }
    public string unitMeasurement { get; set; }
    public Nullable<int> minOrderQty { get; set; }
    public Nullable<int> packSize { get; set; }
    public string leadTime { get; set; }
    public Nullable<int> generalAccessoryCategoryId { get; set; }
    public string Company { get; set; }
    public Nullable<decimal> Weight { get; set; }
    public Nullable<int> ProductType { get; set; }
    //ProductDescription
    public string id { get; set; }
    public string language { get; set; }
    public string shortDescription { get; set; }
    public string detailDescription { get; set; }
    public string Name { get; set; }
    public Nullable<int> Rank { get; set; }
    public Nullable<System.DateTime> StartDate { get; set; }
    public Nullable<System.DateTime> EndDate { get; set; }

     public class ProductResponse
{
    public string id { get; set; }
    //Product
    public string unitMeasurement { get; set; }
    public Nullable<int> minOrderQty { get; set; }
    public Nullable<int> packSize { get; set; }
    public string leadTime { get; set; }
    public Nullable<int> generalAccessoryCategoryId { get; set; }
    public string Company { get; set; }
    public Nullable<decimal> Weight { get; set; }
    public Nullable<int> ProductType { get; set; }
    //ProductDescription
    public string language { get; set; }
    public string shortDescription { get; set; }
    public string detailDescription { get; set; }
    public string Name { get; set; }
    public Nullable<int> Rank { get; set; }
    public Nullable<System.DateTime> StartDate { get; set; }
    public Nullable<System.DateTime> EndDate { get; set; }
}

所以我只想把一个产品列表和一个产品描述列表加入到一个productResponse列表中。我该怎么做?产品的id和产品描述是相同的,所以这就是我想加入他们的原因。

按id将两个不同的列表合并为一个列表

在id上加入它们,然后调用ToList:

var productResponses = from p in products 
                       join pd in productDescriptions
                       on p.id equals pd.id
                       select new ProductResponse
                       { 
                          id = p.id,
                          language = pd.language,
                          // ...
                       }
var list = productResponses.ToList();