我試圖合併兩個列表。我經常這樣做成功的時候我已經合併類似ProductsList1.Product.Id
與ProductList2.Product.Id
,但是在這種情況下,它更像是ProductsList.Product.Id
與ProductCategoriesList.ProductCategory.ProductId
。第三級屬性是什麼讓我!LINQ的 - 通過性能兒童相交2所列出對象
// LIST OF PRODUCTS IN RESULT SETS
List<Product> products = new List<Product>();
products.Add(new Product() { Id = 1 });
products.Add(new Product() { Id = 2 });
// LIST OF ALL PRODUCTS AND THEIR CATEGORY TAXONOMIES
List<ProductCategory> allProductCategories = new List<ProductCategory>();
allProductCategories.Add(new ProductCategory() { ProductId = 1, CategoryUid = 101, ParentCategoryUid = 30 });
allProductCategories.Add(new ProductCategory() { ProductId = 1, CategoryUid = 30, ParentCategoryUid = 2 });
allProductCategories.Add(new ProductCategory() { ProductId = 1, CategoryUid = 2, ParentCategoryUid = 1 });
allProductCategories.Add(new ProductCategory() { ProductId = 3, CategoryUid = 101, ParentCategoryUid = 43 });
allProductCategories.Add(new ProductCategory() { ProductId = 3, CategoryUid = 43, ParentCategoryUid = 8 });
allProductCategories.Add(new ProductCategory() { ProductId = 3, CategoryUid = 8, ParentCategoryUid = 1 });
// NEED TO MERGE THE 2ND LIST INTO THE 1ST BY PRODUCTID VIA SQL EQUIV INNER JOIN
// END RESULT SHOULD BE products list has 2 objects. one object has 1 list product category with 3 child objects
// THIS IS THE CLOSEST I GOT
products.Select(x => x.Id).Intersect(allProductCategories.Select(a => a.ProductId).ToList());
}
public class Product
{
private int _id;
private List<ProductCategory> _productCategories;
public int Id
{
get { return _id; }
set { _id = value; }
}
public List<ProductCategory> ProductCategories
{
get { return _productCategories; }
set { _productCategories = value; }
}
}
public class ProductCategory
{
private int _productId;
private int _categoryUid;
private int _parentCategoryUid;
public int ProductId
{
get { return _productId; }
set { _productId = value; }
}
public int CategoryUid
{
get { return _categoryUid; }
set { _categoryUid = value; }
}
public int ParentCategoryUid
{
get { return _parentCategoryUid; }
set { _parentCategoryUid = value; }
}
}
第一個和第二個列表不是同一類型,因此您如何計劃合併它們?你試圖達到什麼樣的最終結果,即什麼類型的列表? –
好的,我看到你在代碼塊中繼續提出你的問題作爲評論。如果你將來不這樣做,可能是最好的。這就是說,從你的評論中我不清楚最終的結果應該是什麼。 –