C#检测AnonymousType new {name = value,}并转换成Dictionary
发布时间:2020-12-15 03:58:18 所属栏目:百科 来源:网络整理
导读:我需要检测一个对象是否是匿名创建的,像新的{name = value,} 如果它是AnonymousType,它应该将其属性名称/值添加到 Dictionarystring,object 这是我自己一起入侵的: var name="name";var obj = new { name = new object(),};var lookup = new Dictionarystri
我需要检测一个对象是否是匿名创建的,像新的{name = value,}
如果它是AnonymousType,它应该将其属性名称/值添加到 Dictionary<string,object> 这是我自己一起入侵的: var name="name"; var obj = new { name = new object(),}; var lookup = new Dictionary<string,object>(); if(obj.GetType().Name.StartsWith("<>f__AnonymousType")) { foreach (var property in obj.GetType().GetProperties()) { lookup[property.Name] = property.GetValue(obj,null); } } else { lookup[name]=obj; } 我想知道是否有更好/更快的方式来检测AnonymousTypes, Dictionary<string,object> 解决方法
要获取对象的所有属性,将其值设置为“Dictionary”,您可以将Linq的功能与“反射”对象耦合.
您可以使用Enumerable.ToDictionary方法: var dic = obj.GetType() .GetProperties() .ToDictionary(p => p.Name,p=> p.GetValue(obj,null)); 这将返回一个字典< string,object> ;. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |