C# 列表<;T>;从列表中的属性<;T>;

C# 列表<;T>;从列表中的属性<;T>;,c#,generics,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" } ); 但是如果你仍然需要一个列表,请使用 List<s

我找不到太多关于如何做到这一点的信息。我可能没有弄对术语

我有一个对象列表:

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" } );
但是如果你仍然需要一个列表,请使用

List<string> names = cats.ConvertAll(c => c.Name);
List Name=cats.ConvertAll(c=>c.Name);
LINQ操作员是您的朋友:

cats.Select(c => c.Name).ToList()
我使用
ToList()
来避免懒惰的计算,并确保您有一个
IList
来使用。

cats.Select(x=>x.Name)。ToList()

使用linq:

var names = cats.Select(x => x.Name).ToList();

如果实际上不需要将
列表作为输出,如果不允许(或不希望)使用var、扩展方法和Linq或需要字符串列表,则可以停止使用
.ToList()

List<string> names = cats.ConvertAll(cat => cat.Name);
List Name=cats.ConvertAll(cat=>cat.Name);
试试这个:

cats.Select(e => e.Name).ToArray();
我对LINQ很陌生,所以我不能保证这是有效的

另外,添加System.Linq命名空间:

using System.Linq;

您是否正在尝试将列表序列化为JSON?天哪,感谢大家的快速响应。我不敢相信这是一个简单的手掌。Yuriy,谢谢你用少林克的方式来做这件事!
cats.Select(cat => cat.Name).ToList();
(from cat in cats select cat.Name).ToList();
var listOfNames = (from c in cats
                   select c.Name).ToList();
List<string> names = cats.ConvertAll(cat => cat.Name);
cats.Select(e => e.Name).ToArray();
using System.Linq;
cats.Select(cat => cat.Name).ToList()