为什么这个Lambda函数赢了';不能在ASP.NET中工作 Dictionary myList=newdictionary(); 列表结果=新列表(myList); result.Sort((first,second)=>second.Value.CompareTo(first.Value));

为什么这个Lambda函数赢了';不能在ASP.NET中工作 Dictionary myList=newdictionary(); 列表结果=新列表(myList); result.Sort((first,second)=>second.Value.CompareTo(first.Value));,asp.net,lambda,Asp.net,Lambda,在构建时,它在第3行抛出5个错误 这是来自ASP.NET 2.0的屏幕快照 这来自.NET 2.0中的控制台应用程序 那么你认为哪里出了问题 为了约翰 好的。。这是一个RAR文件,其中包含一个控制台应用程序和一个为.NET2.0编写的Web应用程序 您是否确保将此代码放入方法中?或者你在课堂上有吗。在类级别使用它会在构建时抛出5个错误 坏的 Dictionary<string, int> myList = new Dictionary<string, int>();

在构建时,它在第3行抛出5个错误

这是来自ASP.NET 2.0的屏幕快照

这来自.NET 2.0中的控制台应用程序

那么你认为哪里出了问题

为了约翰

好的。。这是一个RAR文件,其中包含一个控制台应用程序和一个为.NET2.0编写的Web应用程序

您是否确保将此代码放入方法中?或者你在课堂上有吗。在类级别使用它会在构建时抛出5个错误

坏的

Dictionary<string, int> myList = new Dictionary<string, int>();
List<KeyValuePair<string, int>> result = new List<KeyValuePair<string, int>>(myList);
result.Sort((first, second) => second.Value.CompareTo(first.Value));
class Program
{
    var myList = new Dictionary<string, int>();
    var result = new List<KeyValuePair<string, int>>(myList);
    result.Sort((x, y) => x.Value.CompareTo(y.Value));  

    static void Main(string[] args)
    {

    }
}
类程序
{
var myList=新字典();
var结果=新列表(myList);
结果排序((x,y)=>x.Value.CompareTo(y.Value));
静态void Main(字符串[]参数)
{
}
}
给出以下错误:

错误1类中的无效标记“(”, 结构或接口成员 声明
错误2无效令牌',' 在类、结构或接口成员中 声明
错误3无效标记“')” 在类、结构或接口成员中 声明
错误4无效的令牌“(” 在类、结构或接口成员中 声明
错误5无效标记“')” 在类、结构或接口成员中 声明

Dictionary<string, int> myList = new Dictionary<string, int>();
List<KeyValuePair<string, int>> result = new List<KeyValuePair<string, int>>(myList);
result.Sort((first, second) => second.Value.CompareTo(first.Value));
class Program
{
    var myList = new Dictionary<string, int>();
    var result = new List<KeyValuePair<string, int>>(myList);
    result.Sort((x, y) => x.Value.CompareTo(y.Value));  

    static void Main(string[] args)
    {

    }
}
类程序
{
静态void Main(字符串[]参数)
{
var myList=新字典();
var结果=新列表(myList);
结果排序((x,y)=>x.Value.CompareTo(y.Value));
}
}

您是否确保将此代码放入方法中?或者你在课堂上有吗。在类级别使用它会在构建时抛出5个错误

坏的

Dictionary<string, int> myList = new Dictionary<string, int>();
List<KeyValuePair<string, int>> result = new List<KeyValuePair<string, int>>(myList);
result.Sort((first, second) => second.Value.CompareTo(first.Value));
class Program
{
    var myList = new Dictionary<string, int>();
    var result = new List<KeyValuePair<string, int>>(myList);
    result.Sort((x, y) => x.Value.CompareTo(y.Value));  

    static void Main(string[] args)
    {

    }
}
类程序
{
var myList=新字典();
var结果=新列表(myList);
结果排序((x,y)=>x.Value.CompareTo(y.Value));
静态void Main(字符串[]参数)
{
}
}
给出以下错误:

错误1类中的无效标记“(”, 结构或接口成员 声明
错误2无效令牌',' 在类、结构或接口成员中 声明
错误3无效标记“')” 在类、结构或接口成员中 声明
错误4无效的令牌“(” 在类、结构或接口成员中 声明
错误5无效标记“')” 在类、结构或接口成员中 声明

Dictionary<string, int> myList = new Dictionary<string, int>();
List<KeyValuePair<string, int>> result = new List<KeyValuePair<string, int>>(myList);
result.Sort((first, second) => second.Value.CompareTo(first.Value));
class Program
{
    var myList = new Dictionary<string, int>();
    var result = new List<KeyValuePair<string, int>>(myList);
    result.Sort((x, y) => x.Value.CompareTo(y.Value));  

    static void Main(string[] args)
    {

    }
}
类程序
{
静态void Main(字符串[]参数)
{
var myList=新字典();
var结果=新列表(myList);
结果排序((x,y)=>x.Value.CompareTo(y.Value));
}
}

您的第二个屏幕截图从文件顶部裁剪出来(使用指令),您明确提到“.NET 2”,无论是出于偶然还是出于设计。因此,显而易见的问题是:

你在用C#3吗?因为Lamdas在C#2中不可用。(注意:重要的是语言版本,而不是/NET framework版本!)


多重编辑:该死,我的第一次编辑让我更加不正确:-)

您的第二个屏幕截图从文件顶部(使用指令)裁剪出来,您明确提到“.NET 2”,无论是出于偶然还是出于设计。因此,显而易见的问题是:

你在用C#3吗?因为Lamdas在C#2中不可用。(注意:重要的是语言版本,而不是/NET framework版本!)

多重编辑:该死,我的第一次编辑让我更加不正确:-)

使用系统;
使用System.Collections.Generic;
名称空间SO
{
班级计划
{
公共静态void Main(字符串[]args)
{
var myList=新字典();
添加(“a”,2);
添加(“b”,50);
添加(“c”,6);
var结果=新列表(myList);
result.Sort((first,second)=>second.Value.CompareTo(first.Value));
result.Reverse();
foreach(结果中的KeyValuePair对)
{
控制台写入线(对值);
}
Console.ReadLine();
}
}
}
上面的内容似乎是在3.5和2下编译的

同样有效-只需运行它。

使用系统;
使用System.Collections.Generic;
名称空间SO
{
班级计划
{
公共静态void Main(字符串[]args)
{
var myList=新字典();
添加(“a”,2);
添加(“b”,50);
添加(“c”,6);
var结果=新列表(myList);
result.Sort((first,second)=>second.Value.CompareTo(first.Value));
result.Reverse();
foreach(结果中的KeyValuePair对)
{
控制台写入线(对值);
}
Console.ReadLine();
}
}
}
上面的内容似乎是在3.5和2下编译的


同样有效-只需运行它。

只需尝试在一个地方获得此功能:

C#编程语言在很大程度上独立于.NET框架。其中一个例子是VisualStudio2008引入了支持lambda表达式的C#编程语言的第3版。同一版本的VisualStudio2008还引入了.NETFramework的3.5版。它还引入了针对框架版本2.0、3.0或3.5的功能,同时允许您使用该语言的版本2.0或3.0

例如,这允许您在针对.NET Framework 2.0或3.0版的程序中使用C#3.0功能

不知何故,您的ASP.NET应用程序(或者它是一个网站)设置为使用C#编程语言的2.0版。您的控制台应用程序设置为使用3.0版。这就是为什么它可以在控制台应用程序中工作,而不能在ASP.NET应用程序中工作

ASP.NET一直并将永远支持相同的.NET框架和C#编程语言