加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

c# – 如何遍历匿名对象列表?

发布时间:2020-12-15 19:40:44 所属栏目:百科 来源:网络整理
导读:我有一些示例代码如下: var items = new Listobject();var testObjectOne = new{ Valueone = "test1",ValueTwo = "test2",ValueThree = "test3"};var testObjectTwo = new{ Valueone = "test1",ValueThree = "test3"};items.Add(testObjectOne);items.Add(t
我有一些示例代码如下:

var items = new List<object>();

var testObjectOne = new
{
    Valueone = "test1",ValueTwo = "test2",ValueThree = "test3"
};
var testObjectTwo = new
{
    Valueone = "test1",ValueThree = "test3"
};
items.Add(testObjectOne);
items.Add(testObjectTwo);

foreach (var obj in items)
{
    var val = obj.Valueone;
}

但我无法访问Valueone并得到错误:object’不包含’Valueone’的定义,并且没有扩展方法’Valueone’接受类型’object’的第一个参数可以找到(你是否缺少using指令或装配参考?)

问题:如何迭代此列表并访问ValueOne?非常感谢任何帮助或意见,谢谢

解决方法

您可以使用反射来获取匿名类型的属性:

var items = new List<object>();

var testObjectOne = new
{
    Valueone = "test1",ValueThree = "test3"
    };
var testObjectTwo = new
{
    Valueone = "test1",ValueThree = "test3"
};
items.Add(testObjectOne);
items.Add(testObjectTwo);

foreach (var obj in items)
{
    var val = obj.GetType()
        .GetProperty("Valueone")
        .GetValue(obj);
}

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读