从数据表返回字典的方法

时间:2017-06-26 21:59:09

标签: c# dictionary

我有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;
}

1 个答案:

答案 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...
 }