我在做一個小例子來了解from in select
。linq - from select
我的例子:
class Person
{
public string Name { get; set; }
public int Age { get; set; }
public Person(string name, int age)
{
this.Name = name;
this.Age = age;
}
}
class Program
{
static void Main()
{
var list = new List<Person>();
list.Add(new Person(name: "Hermione", age: 20));
var persons = from p in list select new { p.Age, p.Name };
foreach (var person in persons)
{
Console.WriteLine($"Name: {person.Name}. Age: {person.Age}");
}
var _persons = from p in list select new Person(p.Name, p.Age);
foreach (var person in _persons)
{
Console.WriteLine($"Name: {person.Name}. Age: {person.Age}");
}
}
}
他們都有相同的結果:
名稱:赫敏。年齡:20
我的問題:第一和第二的區別是什麼?何時使用第一個/第二個?
如果OP真的想了解這一點,請下載一個工具,如[do tPeek](https://www.jetbrains.com/decompiler/),反編譯OP的小應用程序,並查看編譯器生成的代碼(使用dotPeek您必須啓用編譯器生成的代碼)。這將*真正*幫助可視化您想要解釋的內容。 – CodingGorilla