C#错误无效表达式术语','

时间:2015-06-09 19:50:22

标签: c# asp.net .net

代码:

  DataTable dt = Utility.GetProductByCatalogIds2("662, 663, 664, 665,666");

        List<object> listproduct1 = new List<object>();
        List<object> listproduct2 = new List<object>();
        List<object> listproduct3 = new List<object>();
        List<object> listproduct4 = new List<object>();
        List<object> listproduct5 = new List<object>();
        if (dt != null && dt.Rows.Count > 0)
        {
            for (int i = 0; i < dt.Rows.Count; i++)
            {
                if (dt.Rows[i]["catalogID"].ToString() == "662" || dt.Rows[i]["parentId"].ToString() == "662")
                {
                    listproduct1.Add(new 

                    {
                        productID = dt.Rows[i]["productID"].ToString(),
                        ProductImg = dt.Rows[i]["ProductImg"].ToString(),
                        shortDesc = dt.Rows[i]["shortDesc"].ToString(),
                        ProductName = dt.Rows[i]["ProductName"].ToString(),
                        ProductPrice = dt.Rows[i]["ProductPrice"].ToString(),
                    });

` 而对于其他4个列表是相同的,我只更改CatalogID。我得到以下错误:

enter image description here

和85个相同的错误:

enter image description here

这可能是个愚蠢的问题,但我不知道该怎么做:(请你告诉我我做错了什么。

2 个答案:

答案 0 :(得分:2)

enter image description here

从图像看来,你正在使用.Net framework 2.0和c#编译器的版本,它不支持匿名类型,因此也不支持错误。默认情况下,C#编译器的2.0版将与.Net framework 2.0一起使用,并且不支持匿名类型。

更新.Net框架版本或从.Net framework 3.5或更高版本(如果已安装)指定应用程序池。

答案 1 :(得分:1)

我认为问题在于你使用的是.NET框架版本2或3,它默认使用C#2编译器,不支持对象初始化器。

Object initializers在C#3中引入。