我目前正在创建一个这样的匿名对象,到目前为止工作正常。
var users = new
{
action = "users",
newbies = new[]
{
new
{
email = "abc",
username = "def",
location = "ghi"
}
}
}
现在我需要通过向内部对象添加更多属性来修改它 我有一个包含用户的列表,代表用户朋友。
List<User> friends = ...
所以内部对象应该类似于:
新
{
email = "abc",
username = "def",
location = "ghi",
friend1email = "f1@example.com",
friend2username = "f1",
friend2email = "f2@example.com",
friend2username = "f2",
}
除了我需要使用LIst来获取它,所以循环如下:
foreach(var user in friends)
{
}
当我需要循环时,如何生成这种类型的匿名对象?
注意:我不能在这里更改格式,我知道它很愚蠢,但就是这样。
更新
如何使用ExpandoObject执行此操作?
答案 0 :(得分:2)
您可以在JSON中构建对象结构(构建字符串很简单),然后使用JSON反序列化器(通过NuGet安装NewtonSoft.JSON)将其转换为对象。
答案 1 :(得分:1)
您无法使用匿名对象执行此操作,但如果将其视为字典,则可以使用dynamic
对象执行此操作。