我正在做一个小例子来了解 from in 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}");
}
}
}
他们两个都有相同的结果:
Name: Hermione. Age: 20
我的问题:第一个和第二个之间有什么区别?什么时候使用第一个/第二个?
最佳答案
首先这里是匿名类型var persons = from p in list select new { p.Age, p.Name };
因此,您可以创建随机的属性名称,例如
var persons = from p in list select new { AgesSomeWithDay = p.Age , FullName = p.Name + p.Name };
但是
var _persons = from p in list select new Person( p.Name, p.Age);
是强类型的,你不能随机命名属性,因为这里是 new Person
和 Person
类包含两个您只能分配给 _persons 的属性
关于c# - linq - 从选择,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36477898/