我想使用LINQ的功能,安装了.net framework 3.5.
在vs2005中,新建了个项目,copy了下面的这些代码,提示有很多语法错误(我已经添加了引用,并用using 引入了命名空间)。
我试验了一下在VS2008 express中,使用同样的代码,完全没有错误。
请问,是由于2005的IDE的语法检查不兼容3.5的语法么?还是什么其它的原因?
那我怎样才能在2005中使用framework3.5呢?
代码如下:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Xml.Linq;
namespace linqTest
{
class Student
{
public string First { get; set; }
public string Last { get; set; }
public int ID { get; set; }
public string Street { get; set; }
public string City { get; set; }
public List<int> Scores;
}
class Teacher
{
public string First { get; set; }
public string Last { get; set; }
public int ID { get; set; }
public string City { get; set; }
}
class XMLTransform
{
static void Main()
{
// Create the data source by using a collection initializer.
List<Student> students = new List<Student>()
{
new Student {First="Svetlana", Last="Omelchenko", ID=111, Scores = new List<int>{97, 92, 81, 60}},
new Student {First="Claire", Last="O’Donnell", ID=112, Scores = new List<int>{75, 84, 91, 39}},
new Student {First="Sven", Last="Mortensen", ID=113, Scores = new List<int>{88, 94, 65, 91}},
};
// Create the query.
var studentsToXML = new XElement("Root",
from student in students
let x = String.Format("{0},{1},{2},{3}", student.Scores[0],
student.Scores[1], student.Scores[2], student.Scores[3])
select new XElement("student",
new XElement("First", student.First),
new XElement("Last", student.Last),
new XElement("Scores", x)
) // end "student"
); // end "Root"
// Execute the query.
Console.WriteLine(studentsToXML);
// Keep the console open in debug mode.
Console.WriteLine("Press any key to exit.");
Console.ReadKey();
}
}
}
------解决方案--------------------
vs2005无法
------解决方案--------------------
.Net 3.5 内包括了 .Net 1.1, .Net 2.0 , .Net 3.0 和 .Net 3.5
但是 vs2005 只支援到 .Net 2.0 而已,你的代码内有 .Net 3.5 的新功能 (System.Xml.Linq 和 System.Linq),
所以 vs2005 会给错。
------解决方案--------------------
不行,只能在.net2008中用
------解决方案--------------------
用VS2008吧
------解决方案--------------------
linq的新语法是要新的编译器才能支持的。