我有一些示例代码看起来像这样:如何迭代匿名对象列表?
var items = new List<object>();
var testObjectOne = new
{
Valueone = "test1",
ValueTwo = "test2",
ValueThree = "test3"
};
var testObjectTwo = new
{
Valueone = "test1",
ValueTwo = "test2",
ValueThree = "test3"
};
items.Add(testObjectOne);
items.Add(testObjectTwo);
foreach (var obj in items)
{
var val = obj.Valueone;
}
但我不能访问Valueone并且得到错误:对象”不包含定义‘Valueone’,没有扩展方法‘Valueone’接受可以找到类型'对象'的第一个参数(您是否缺少使用指令或程序集引用?)
问题:如何遍历此列表并访问ValueOne,例如?任何帮助或输入的高度赞赏,感谢
var items =(new [] {testObjectOne})。ToList()'。或者'新列表()'。或者一个辅助方法来推断列表类型而不实际添加对象。或者使用元组。或者,我个人最喜欢的选择,不要懒惰,只要申报一个班级。 –
这听起来像是一个xy问题。你为什么不为你的测试对象创建一个专用类型,并将这些实例放在一个'List'中? –
列表中的项目类型为'object',它不包含'ValueOne'的定义。你可以做一些像'var items = Enumerable.Empty