所以我有一个数据库中的两列,它将返回我商店中的所有产品以及与产品相关联的部门ID。
我想要做的是使用list / dictionary / ienumerable set创建一些东西,这样如果我给一个函数一个产品id,它就会吐出部门id。目前我遇到一些麻烦,使声明正确,并需要在该部门提供一些帮助。
首先,我有产品和类别之间关系的基础。然后我希望ProductCategoryCollection
返回每个产品和类别/部门的所有映射的集合。我陷入了第二部分,并不确定从哪里开始。
helper.GetProductToCategoryMatching()
返回数据库中的行。
public class ProductAndCategoryID
{
public ProductAndCategoryID(int product, int category)
{
this.productID = product;
this.categoryID = category;
}
public int productID;
public int categoryID;
}
public class ProductCategoryCollection : IEnumerable<ProductAndCategoryID>
{
public ProductCategoryCollection()
{
}
public List<ProductCategoryCollection> populate()
{
ShippingClassHelper helper = new ShippingClassHelper();
DataSet ds = new DataSet();
List<ProductCategoryCollection> list = new List<ProductCategoryCollection>();
ds = helper.GetProductToCategoryMatching();
foreach (DataRow row in ds.Tables[0].Rows)
{
}
return new List<ProductCategoryCollection>();
}
}
答案 0 :(得分:0)
您现在需要做的就是在循环内创建一个ProductCategoryCollection
对象并将其添加到列表中。
public List<ProductAndCategoryID> populate()
{
ShippingClassHelper helper = new ShippingClassHelper();
DataSet ds = new DataSet();
List<ProductAndCategoryID> list = new List<ProductAndCategoryID>();
ds = helper.GetProductToCategoryMatching();
foreach (DataRow row in ds.Tables[0].Rows)
{
var pc = new ProductAndCategoryID();
pc.ProductID = row[0];
pc.CategoryID = row[1];
list.Add(pc);
}
return list;
}
答案 1 :(得分:0)
如果我理解您的问题和您的要求,您希望获得一个将ProductID
映射到CategoryID
的词典,以便可以为CategoryID
执行查找给定的ProductID
。
如果这是您问题的良好翻译,那么您可以这样做:
var productMap = new ShippingClassHelper()
.GetProductToCategoryMatching()
.Tables[0].Rows
.ToDictionary(row => (int)row[0], row => (int)row[1]);
它做出以下假设:
现在您可以使用此字典执行查找。如果要检查给定的产品ID是否存在,可以执行以下操作:
var containsProduct660 = productMap.ContainsKey(660);
如果您想检索给定产品ID的类别ID,您可以这样做:
var categoryIdForProduct660 = productMap[660];