我有this个DAL类,其中包含DataTable
中的一些信息,还有另一个名为Product的类。
我试图编写一个方法(在Product
类内)获取整数id
并返回Dictionary<int, Product>
。
以下是我的开始:
public Dictionary<int, Product> read(int id)
{
Dictionary<int, Product > d1 = new Dictionary<int, Product>();
return d1;
}
答案 0 :(得分:1)
您可以使用LINQ \ lambda expression来实现这一目标:
public Dictionary<int,string> GetProductsDict(DataTable dt)
{
return dt.AsEnumerable()
.ToDictionary<DataRow, int, string>(x => x.Field<int>(0),
x => x.Field<string>(1));
}
如果您需要Product
的对象,您可以执行类似的操作:
public Dictionary<int, Product> GetProductsDict(DataTable dt)
{
Dictionary<int, Product> d1 = new Dictionary<int, Product>();
for (int i = 0; i < dt.Rows.Count; i++)
{
d1.Add((int)dt.Rows[i]["id"], GetProductByID((int)dt.Rows[i]["id"]));
}
return d1;
}
public Product GetProductByID(int id)
{
// do stuff to extract product...
}