我有一个包含动态列表的类,我可以通过以下方式访问它:
foreach (var c in objects)
{
foreach (dynamic i in c.data)
{
var ss = i;
}
}
这个类
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"现在包含了一个对象列表,但我不知道如何将这些值获取到字典或列表中。 还有一点需要注意的是,我需要调整键名。
我尝试过的事情:
foreach (KeyValuePair<string, string> kv in i)
{
string key = kv.Key;
string value = kv.Value;
}
"foreach"语句无法对类型为'System.Collections.IEnumerable'的变量进行操作,因为'System.Collections.IEnumerable'不包含公共定义'GetEnumerator'
此外,动态对象不能让我访问键和/或值。
任何关于如何循环遍历它的帮助都将非常受欢迎。
当我在运行时放置这个"i"时,它说它是一个System.Collections.Generic.Dictionary,但也可以访问它。
解决方案:
对提供的解决方案进行了少许修改,但这对我有效:
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;
}
}
}
c.data
的类型是什么? - Eren ErsönmezGetEnumerator
。 - Eren Ersönmez