从List <T>中的属性列出<T>

Lev*_*kon 4 c# generics

我无法找到如何做到这一点.我可能没有正确的术语.

我有一个对象列表:

class Cat()
{
   public string Name { get; set; }
}

List<Cat> cats = new List<Cat>();

cats.add(new Cat() { Name = "Felix" } );
cats.add(new Cat() { Name = "Fluffy" } );
Run Code Online (Sandbox Code Playgroud)

如何从Name属性中获取字符串列表,如下所示:

{ "Felix", "Fluffy" }
Run Code Online (Sandbox Code Playgroud)

Ode*_*ded 9

LINQ Select运算符是您的朋友:

cats.Select(c => c.Name).ToList()
Run Code Online (Sandbox Code Playgroud)

ToList()用来避免懒惰的评估,并确保你有一个IList工作.


Yur*_*ich 5

var names = cats.Select(c => c.Name);
Run Code Online (Sandbox Code Playgroud)

但是如果你仍然需要使用列表

List<string> names = cats.ConvertAll(c => c.Name);
Run Code Online (Sandbox Code Playgroud)