i have a list where it is having dictionaries.now i want to retrive all values of dictionary how?
whenever i try to run a `foreach` in the list it doesnt show the type Dictionary in item.like

```
foreach(Dictionary dict in products)

```

i used to do it in java but i cant do it in C# why? and what will be the solution?

the code is given bellow

```
List<Dictionary<String,String>> products=new List<Dictionary<String,String>>();
        products=loader.filterproductsbysubcat(subcat);

and here is the generated dictionary list

List<Dictionary<String, String>> productlist = new List<Dictionary<string, string>>();
        String qry = "select product_tbl.Id,product_tbl.brandid,product_tbl.gender,product_tbl.info,product_tbl.name,product_tbl.price,product_tbl.productcode,product_tbl.status,image_tbl.imagename,image_tbl.imagepath from product_tbl left join image_tbl on  product_tbl.Id=image_tbl.productid where product_tbl.subcat='"+subcategoryid+"'";
        dt = db.ConnectDataBaseReturnDT(qry);
        foreach (DataRow row in dt.Rows)
        {
            Dictionary<String, String> mydictionary = new Dictionary<string, string>();
            mydictionary.Add("id",row["Id"].ToString());
            mydictionary.Add("brandid", row["brandid"].ToString());
            mydictionary.Add("gender", row["gender"].ToString());
            mydictionary.Add("info", row["info"].ToString());
            mydictionary.Add("name", row["name"].ToString());
            mydictionary.Add("price", row["price"].ToString());
            mydictionary.Add("productcode", row["productcode"].ToString());
            mydictionary.Add("status", row["status"].ToString());
            mydictionary.Add("imagename", row["imagename"].ToString());
            mydictionary.Add("imagepath", row["imagepath"].ToString());
            productlist.Add(mydictionary);
        }
        return productlist;

```