Q:

How to loop through List

I have a Class which contains a dynamic List, which I manage to access like this.
foreach (var c in objects)
{
    foreach (dynamic i in c.data)
    {
        var ss = i;
    }
}

The Class
public class iUpdateGrid
{
    public int type { get; set; }
    public string session { get; set; }
    public string latitude { get; set; }
    public string longitude { get; set; }
    public string ip { get; set; }
    public int id { get; set; }
    public string station { get; set; }
    public List<iGridData> h_33 { get; set; }
}
public class iGridData
{
    public string table { get; set; }
    public List<dynamic> data { get; set; }
}

"ss" contains now a list of objects, however have no idea how to get these values to a Dictionary or list.
One note I also need to adjust the key names.
Things I tried to do:
foreach (KeyValuePair<string, string> kv in i)
{
    string key = kv.Key;
    string value = kv.Value;
}

foreach statement cannot operate on variables of type 'System.Collections.IEnumerable' because 'System.Collections.IEnumerable' does not contain a public definition for 'GetEnumerator'    
Also the Dynamic objects does not give me the options to access the key and/or value.
Any help how I can loop through this would be very welcome.
also when I put this on runtime "i" says its a  System.Collections.Generic.Dictionary however can access this also.
Solution:
Made little chance to solution as provided, but this worked for me:
        foreach (var c in objects)
        {
            foreach (dynamic i in c.data)
            {
                foreach (var v in (i as IDictionary<string, object>))
                {
                    string key = v.Key;
                    object value = v.Value;
                }
            }
        }

A:

    foreach (var v in (i as IEnumerable<object>))
    {
        if (v is KeyValuePair<string, string>)
        {
            // Do stuff
        }
        else if (v is List<string>)
        {
            //Do stuff
        }

        else throw new InvalidOperationException();
    }

