将一种类型的列表转换为C#3.5中另一种类型的列表

Fio*_*ite 3 c# linq generic-list

我有一个具有ID和Name属性的对象.

我有一个对象列表,但我想将其转换为包含对象名称的字符串列表.我猜测有一些花哨的Linq方法会将对象的名称放入列表中.

List<string> myObjectNames = myObjectList.?
Run Code Online (Sandbox Code Playgroud)

Mar*_*ers 18

如果您知道它是特定的List<T>而不是另一种集合类型,那么您可以使用List<T>.ConvertAll:

将当前元素转换List<T>为另一种类型,并返回包含已转换元素的列表.

例:

List<string> myObjectNames = myObjectList.ConvertAll(x => x.Name);
Run Code Online (Sandbox Code Playgroud)

如果您只知道它是一个可枚举类型但不一定是列表,那么您可以使用LINQ扩展方法Enumerable<T>.SelectEnumerable<T>.ToList:

List<string> myObjectNames = myObjects.Select(x => x.Name).ToList();
Run Code Online (Sandbox Code Playgroud)