c# - 如何在 c# 中将对象添加到匿名对象的数组属性中
问题描述
我对 c# 的大部分研究都是在早期版本中进行的,我对这种代码不是很熟悉。我得到了这个剪断的波纹管,但我很难将产品动态添加到匿名对象的 items 属性中。
var body = new
{
items = new[] {
new {
name = "Product 1",
value = 1000,
amount = 2
}
},
shippings = new[] {
new {
name = "Default Shipping Cost",
value = 100
}
}
};
这个想法是:
var body = new { items = new[]{ new { } } };
foreach(Modelos.Produto p in carrinho.Items)
{
body.items // add elements { name = p.name }
}
解决方案
试试这样:
var body = new { items = new[]{ new { } }.ToList() };
foreach(Modelos.Produto p in carrinho.Items)
{
body.items.Add( /* ... */ );
}
但请注意,这种编码风格旨在解决一些非常具体的问题,即使用旧的 COM 库和内部 LinQ 查询。如果你试图超越它,你很快就会发现它有很大的缺点。
其中一个缺点(我称之为功能)是您仍在使用固定类型,这意味着new { }
集合初始化程序内部成为通用列表的模板。
推荐阅读
- oracle-apex - 如何通过 ATP 将 oracle apex 应用程序文件保存到对象存储?
- angular - 此页面上的代码禁用了 Internet Explorer Angular 2 中的前后缓存
- java - Java中String方法中的类型转换equals
- asp.net - 在asp.net c#中的数据库中显示网页中的Word和excel文件
- php - GoDaddy API - 批量域查询 php
- bootstrap-4 - 在移动视图上删除容器
- python-3.x - 在 numpy.reshape 中获取太多数组错误的索引
- javascript - 如何在 mongoDB 和 Schema 中保存数据如下所示
- java - 发送/接收数据出现问题
- python - 如何从另一个数据框中获取满足某些条件的数据框的值?