C# 创建匿名对象,如何使用循环添加项
我目前正在创建一个类似这样的匿名对象,到目前为止效果很好C# 创建匿名对象,如何使用循环添加项,c#,anonymous-types,C#,Anonymous Types,我目前正在创建一个类似这样的匿名对象,到目前为止效果很好 var users = new { action = "users", newbies = new[] { new { email = "abc", username = "def", location = "ghi" } } } 现在我需要通过向内部对象添加更多属性来修改它。 我有一个包含用户的列表,它代表用户的朋友 Li
var users = new
{
action = "users",
newbies = new[]
{
new
{
email = "abc",
username = "def",
location = "ghi"
}
}
}
现在我需要通过向内部对象添加更多属性来修改它。我有一个包含用户的列表,它代表用户的朋友
List<User> friends = ...
除非我需要使用列表来获取此信息,所以循环如下:
foreach(var user in friends)
{
}
当我需要循环时,如何生成这种类型的匿名对象
注意:我不能在这里更改格式,我知道这很愚蠢,但事实就是这样
更新
如何使用ExpandoObject实现这一点?您不能使用匿名对象,但如果将其视为字典,则可以使用
动态对象。您不能使用匿名对象,但如果将其视为字典,则可以使用动态对象。您可以建立您的JSON中的对象结构(构建字符串很容易),然后使用JSON反序列化程序(通过NuGet安装NewtonSoft.JSON)将其转换为对象。您可以用JSON构建对象结构(构建字符串很容易),然后使用JSON反序列化程序(通过NuGet安装NewtonSoft.JSON)要将它转换成一个对象。你是说你想要一个动态数量的<代码> FrxxEngult[/Cuff]属性,它基于关联列表包含多少个朋友?@ dStnaly:是的,这就是我所说的。你应该考虑使用一个键值对容器,比如<代码>字典<代码> @ dStaly.如果我尝试扩展对象,那该怎么办?根据您想用它做什么-ExpandoObject
没有真正的“属性”-它只依赖于dynamic
在运行时解析它们。因此,如果您的代码需要属性(如映射或序列化),那么它可能无法工作,你是说你想要一个动态数量的<代码> FruxEmail E/Cuff>属性,它是基于关联列表中包含多少朋友?@ dStnaly:是的,我是这么说的。你应该考虑使用一个键值对容器,比如<代码>字典>代码> @ dStaly.如果我尝试扩展对象,那要看你想用它做什么吗?ExpandoObject
没有真正的“属性”-它只依赖dynamic
在运行时解析它们。因此,如果您的代码需要属性(如映射或序列化),那么它可能无法工作,
foreach(var user in friends)
{
}