开发者

Will LINQ, Generics, and Object Initializers work in .NET 2.0 Framework?

void Main()
{
    List<Person> person = new List<Person>
    {
        new Person { Name = "Maria Anders", Age = 21 },
        new Person { Name = "Ana Trujillo", Age = 55 },
        new Person { Name = "Thomas Hardy", Age = 40 },
        new Person { Name = "Laurence Lebihan", Age = 18 },
        new Person { Name = "Victoria Ashwort开发者_如何转开发h", Age = 16 },
        new Person { Name = "Ann Devon", Age = 12 }
    };

    person.Select(x => new { x.Name, x.Age }).Dump();
}

class Person
{
    public string Name { get; set; }
    public int Age { get; set; }
}

If not, can you please convert it into 2.0 coding.


As John says in his comment, there are two issues here: C# language version and .NET version.

Generics will work in C# 2 and above (VS2005 and above), and .NET 2.0 and above.

Object initialisers will work in C# 3 and above (VS2008 and above), but do not require any particular version of the .NET Framework.

LINQ requires C# 3 or above, and .NET 3.5 and above.


Depending what your Dump method is supposed to do, C# 3.0 code targeting .NET 2.0 * might look like this:

static void Main()
{
    List<Person> person = new List<Person>
    {
        new Person { Name = "Maria Anders", Age = 21 },
        new Person { Name = "Ana Trujillo", Age = 55 },
        new Person { Name = "Thomas Hardy", Age = 40 },
        new Person { Name = "Laurence Lebihan", Age = 18 },
        new Person { Name = "Victoria Ashworth", Age = 16 },
        new Person { Name = "Ann Devon", Age = 12 }
    };

    person.ForEach(x => Dump(x));

}

static void Dump(Person p)
{
    Console.WriteLine("{0} {1}", p.Name, p.Age);
}

class Person
{
    public string Name { get; set; }
    public int Age { get; set; }
}

* See itowlson's answer for the details on C# version versus .NET platform version.

0

上一篇:

下一篇:

精彩评论

暂无评论...
验证码 换一张
取 消

最新问答

问答排行榜