我有以下2所列出兩個列表類別和子類別
- `List<Category>`
- `List<SubCategory>`
public class Category
{
public string CategoryId
{
get;
set;
}
public List<SubCategory> subCategories
{
get;
set;
}
public string Name
{
get;
set;
}
}
public class SubCategory
{
public string SubCategoryId
{
get;
set;
}
public string CategoryId
{
get;
set;
}
public string Name
{
get;
set;
}
}
我想找到兩個類別和子類別匹配的類別(按類別編號)。
將具有特定CategoryId的所有子類別添加到具有與CategoriesList相同的CategoryId的Category類別的subCategories數組中。
到目前爲止我已經嘗試過。
var categories = Categories.Select(c => c.Id);
foreach(Guid categoryId in categories)
{
var subCategoriesByCategoryId = validatedSubCategories.Where(subCats => subCats.CategoryId == categoryId);
List<SubCategory> subCategories = new List<SubCategory>();
foreach(SubCategory subCategory in subCategoriesByCategoryId)
{
subCategories.Add(subCategory);
}
if (subCategories.Count() > 0)
{
var categoryById = Categories.FirstOrDefault(vC => vC.Id == categoryId);
if (categoryById != null) categoryById.SubCategories = subCategories;
}
}
我該如何做到這一點?
示例數據
Category cat1= new Category {CategoryId=1};
Category cat2= new Category {CategoryId=2};
Category cat3= new Category {CategoryId=3};
Category cat4= new Category {CategoryId=4};
List<Category > Categories = new List<Category >()
Categories.Add(cat1);
Categories.Add(cat2);
Categories.Add(cat3);
Categories.Add(cat4);
SubCategory sc1 = new SubCategory {CategoryId=1);
SubCategory sc2 = new SubCategory{CategoryId=2};
SubCategory sc3 = new SubCategory{CategoryId=3};
SubCategory sc4 = new SubCategory{CategoryId=4};
List<SubCategory> SubCategories = new List<SubCategory >()
SubCategories.Add(sc1);
SubCategories.Add(sc1);
SubCategories.Add(sc3);
SubCategories.Add(sc4);
期望輸出是從與類別ID 1子類別
2子類別的項目應被添加到具有類別ID 1在所屬分類從子類別與
1子類別項目的類別項目CategoryId 3應添加到CategoryList中具有CategoryId 3的Category項目
1 Subcate從類別編號4小類血淋淋的項目應該被添加到其類別編號4類別項所屬分類
你嘗試過這麼遠嗎?你能告訴我們一些代碼嗎?你也可以共享一個[mcve](https://stackoverflow.com/help/mcve)(例如在.NETFiddle上)? – aloisdg
會很好,如果你有一個樣本數據和預期的輸出 –