这很奇怪,但我在控制器操作方法的下一行中收到此错误A new expression requires (), [], or {} after type
int[] Numbers = { 1, 2, 3, 4, 5}; or I have also tried
var Numbers = new int[]{1,2,3,4,5};
还尝试了其他一些方法来使这条线工作,但事实并非如此。
除控制器动作方法外,这种方法非常好。关于这种奇怪行为的任何想法?
我正在使用VS 2013 Express Edition MVC第5版和.net framework 4.5
这是完整的行动方法
public ActionResult Index()
{
var LstMainModel=new List<MainModel>
var ids = new int[]{1,2,3,4,5};
foreach (var id in ids)
{
LstMainModel.Add(new MainModel{Id=id,planeModel=GetPlanes()});
}
return View(LstMainModel);
}
答案 0 :(得分:4)
您的List
错了。
var LstMainModel = new List<MainModel>
应该是
var LstMainModel = new List<MainModel>();
以下是一个工作示例:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace ConsoleApplication1
{
class Program
{
static int Main(string[] args)
{
var results = TestMethod();
foreach (var item in results)
{
Console.WriteLine(item.Id);
Console.WriteLine(item.planeModel);
}
Console.ReadKey();
return 0;
}
static List<MainModel> TestMethod()
{
var LstMainModel = new List<MainModel>();
var ids = new int[] { 1, 2, 3, 4, 5 };
foreach (var id in ids)
{
LstMainModel.Add(new MainModel { Id = id, planeModel = "TestPlane" });
}
return LstMainModel;
}
}
class MainModel
{
public int Id { get; set; }
public string planeModel { get; set; }
}
}
此外,您可以将foreach
重写为LINQ表达式,在我看来,在这种情况下,它更具可读性。
static List<MainModel> TestMethod()
{
var ids = new int[] { 1, 2, 3, 4, 5 };
return ids.Select(id => new MainModel {Id = id, planeModel = GetPlanes()}).ToList();
}
static String GetPlanes()
{
return "PlanesTest";
}
答案 1 :(得分:0)
它应该按照你的方式工作,但如果没有,
尝试这样:(声明数组的大小)
int[] numbers = new int[5] {1, 2, 3, 4, 5};
如果它仍然无法解决问题