【问题标题】:Convert list of one type to list of another type in C# 3.5在 C# 3.5 中将一种类型的列表转换为另一种类型的列表
【发布时间】:2010-08-24 10:53:31
【问题描述】:

我有一个对象,具有 ID 和 Name 属性。

我有一个对象列表,但我想将其转换为包含对象名称的字符串列表。 我猜有一些奇特的 Linq 方法可以将对象的名称放入列表中。

List<string> myObjectNames = myObjectList.?

【问题讨论】:

    标签: c# linq generic-list


    【解决方案1】:

    如果您知道它专门是 List&lt;T&gt; 而不是其他集合类型,那么您可以使用 List&lt;T&gt;.ConvertAll

    将当前List&lt;T&gt;中的元素转换为另一种类型,并返回一个包含转换后元素的列表。

    例子:

    List<string> myObjectNames = myObjectList.ConvertAll(x => x.Name);
    

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

    List<string> myObjectNames = myObjects.Select(x => x.Name).ToList();
    

    【讨论】:

    • 您可能应该提到 Cast 扩展方法?
    • Cast() 扩展方法执行问题标题中写的事情(例如将字符串列表转换为整数列表)。但它不适合问题中的示例......
    猜你喜欢
    • 1970-01-01
    • 2011-01-24
    • 2023-01-04
    • 1970-01-01
    • 2011-03-05
    • 1970-01-01
    • 2021-01-03
    • 2021-11-12
    • 2020-12-02
    相关资源
    最近更新 更多