有没有办法从某种类型的列表中创建属性值列表?

时间:2013-05-31 11:01:26

标签: linq list c#-4.0

想象一下,我有这个课程:

class Person
{
    string Name { get; set; }
    string Surname { get; set; }
    string Other { get; set; }
}

我有IList<Person>,现在我希望IList<string>是每个人Name的序列。

我可以使用这个循环:

var Names = new List<string>();
foreach (Person p in Persons)
{
    Names.Add(p.Name);
}

但是,我想知道linq(或任何其他选项)是否允许我更容易地做到这一点?

感谢。

3 个答案:

答案 0 :(得分:3)

lstPersons.Select(x=> x.Name).ToList()

答案 1 :(得分:3)

像这样?

var Names = Persons.Select(p => p.Name).ToList();

答案 2 :(得分:1)

var items = new List<Person>();
items.Add(...);
items.Add(...);


var people = items.Select(x=>x.name);