从对象数组中检索属性的数组
本文关键字:数组 属性 检索 对象 | 更新日期: 2023-09-27 18:01:49
假设如下类:
class Person
{
public string FirstName {get;set;}
public string LastName {get;set;}
}
假设我有一个Person对象列表或数组。是否有一种方法使用LINQ从所有数组元素中检索FirstName属性并返回字符串数组。我有一种感觉,我以前见过类似的东西。
希望这个问题是有意义的。
当然,很容易:
Person[] people = ...;
string[] names = people.Select(x => x.FirstName).ToArray();
除非你真的需要结果是一个数组,我会考虑使用ToList()
而不是ToArray()
,并可能只是把它作为一个惰性评估的IEnumerable<string>
(即只是调用Select
)。
如果您有数组,那么我个人会使用:
Person[] people = ...
string[] names = Array.ConvertAll(people, person => person.FirstName);
;它避免了一些重新分配,并适用于更多版本的。net。同样:
List<Person> people = ...
List<string> names = people.ConvertAll(person => person.FirstName);
LINQ将工作,但实际上不是需要在这里
试试这个:
List<Person> people = new List<Person>();
people.Add(new Person()
{
FirstName = "Brandon",
LastName = "Zeider"
});
people.Add(new Person()
{
FirstName = "John",
LastName = "Doe"
});
var firstNameArray = people.Select(p => p.FirstName).ToArray();