我有一个包含动态List的类,我设法像这样访问它。
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; }
}
&#34; SS&#34;现在包含一个对象列表,但不知道如何将这些值添加到Dictionary或列表中。 一个注意事项我还需要调整键名。
我试图做的事情:
foreach (KeyValuePair<string, string> kv in i)
{
string key = kv.Key;
string value = kv.Value;
}
foreach语句不能对类型为&#39; System.Collections.IEnumerable&#39;的变量进行操作。因为&#39; System.Collections.IEnumerable&#39;不包含&#39; GetEnumerator&#39;的公开定义
动态对象也没有为我提供访问密钥和/或值的选项。
任何帮助我如何循环使用这将是非常受欢迎的。
当我把它放在运行时&#34;我&#34;虽然它的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;
}
}
}
答案 0 :(得分:0)
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();
}
答案 1 :(得分:0)
DEFAULT