为什么我不能在@code部分的Blazor组件中运行以下代码:
List<string> dinosaurs = new List<string>();
dinosaurs.Add("Tyrannosaurus");
dinosaurs.Add("Amargasaurus");
dinosaurs.Add("Mamenchisaurus");
dinosaurs.Add("Deinonychus");
dinosaurs.Add("Compsognathus");
此代码在控制台应用程序中运行良好。它甚至不会在Blazor中编译。如何在Blazor中将项目添加到此列表?在我的最终解决方案中,我需要通过另一个对象列表forEach来获得填充最终列表所需的值。
您应该发布更多的代码。
试试这个。
@code {
List<string> dinosaurs = new List<string>();
protected async override Task OnInitializedAsync()
{
dinosaurs.Add("Tyrannosaurus");
dinosaurs.Add("Amargasaurus");
dinosaurs.Add("Mamenchisaurus");
dinosaurs.Add("Deinonychus");
dinosaurs.Add("Compsognathus");
}
}
dinasaurs
是组件类的字段。
您可以从一个方法中操作它。
@Brian Parker的回答说明了代码没有编译的原因:您不能在代码的声明部分运行方法。
如果你真的想初始化这些值,那么试试:
List<string> dinosaurs = new List<string>
{ "Tyrannosaurus",
"Amargasaurus",
"Mamenchisaurus",
"Deinonychus",
"Compsognathus" };
不管怎样,它看起来更好,对吧?:D