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()