Red*_*rus 0 asp.net asp.net-mvc-5
我有一个模型InvoiceViewModel,它有一个属性 Items,它是一个列表。我想foreach在 Items 属性上运行并将其动态添加到列表中。
发票视图模型.cs
public class InvoiceViewModel
{
...
public List<ItemsViewModel> Items { get; set; }
}
Run Code Online (Sandbox Code Playgroud)
ItemsViewModel.cs
public class ItemsViewModel
{
public string Name { get; set; }
public string UnitPrice { get; set; }
public string Quantity { get; set; }
public string TotalAmount { get; set; }
}
Run Code Online (Sandbox Code Playgroud)
我使用以下代码将 InvoiceViewModel 中的项目动态添加到列表中。
var Items = InvoiceViewModel.Items;
var ItemsList = new List<ItemsViewModel>
{
foreach (var item in Items)
{
new ItemsViewModel { Name = item.Name, UnitPrice = item.UnitPrice, Quantity = item.Quantity, TotalAmount = item.TotalAmount };
}
};
Run Code Online (Sandbox Code Playgroud)
上面的代码抛出错误,} expected
好的。因此,您在对象内部循环,这在语法上是错误的。当您初始化 List 时,Object 初始值设定项希望您提供 T 类的列表。你应该做的是:
var ItemsList = new List<ItemsViewModel>();
foreach (var item in InvoiceViewModel.Items)
{
ItemsList.Add(new ItemsViewModel { Name = item.Name, UnitPrice = item.UnitPrice, Quantity = item.Quantity, TotalAmount = item.TotalAmount });
}
Run Code Online (Sandbox Code Playgroud)
或者您可以使用 LINQ 表达式来初始化对象,如下所示:
var ItemsList = InvoiceViewModel.Items
.Select(item => new ItemsViewModel { Name = item.Name, UnitPrice = item.UnitPrice, Quantity = item.Quantity, TotalAmount = item.TotalAmount })
.ToList();
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
7781 次 |
| 最近记录: |