【问题标题】:Is there a .net framework method to generate a collection from a property of all items in a collection?是否有 .net 框架方法可以从集合中所有项目的属性生成集合?
【发布时间】:2011-03-15 21:05:51
【问题描述】:

我有

myObjects = List(of myObject)

我的对象有

Public Property myProperty as string

有没有框架方法来制作

myObjectProperties = List(of string)

来自myObjects中的每个myObject.myProperty

显然我可以轻松创建一个。我只是想知道是否有框架解决方案。

【问题讨论】:

    标签: .net list collections


    【解决方案1】:

    林克:

    myObjectProperties = myObjects.Select(x => x.myProperty).ToList()
    

    (抱歉,它是 C# 而不是 VB.NET,但您只是在谈论 .NET ...)

    【讨论】:

    • 从技术上讲,这不是 LINQ 吗?但是对于一个快速示例的赞誉:-)我认为这是一个答案,但无法足够快地输入语法lol
    • 这一切都在system.Linq命名空间中,体现了Linq的可能性,所以常被称为“Linq”……不知道对错。
    • 别担心,伙计,我只是为了回答而吹毛求疵。我相信 LINQ 只是关键字语法和编译器支持。您的示例是一个 lambda 语句,就像您在 LINQ 命名空间中所说的一样有用,作为支持 LINQ 的补充。同样如您所知,LINQ 将被吐出。
    【解决方案2】:

    这是@Stefan Steinegger 代码的VB 版本:

    Dim myObjectProperties = myObjects.Select(Function(F) F.myProperty).ToList()
    

    【讨论】:

      【解决方案3】:

      除了别人贴的LINQ解决方案外,还可以使用List(Of T)类上的ConvertAll实例方法,基于投影急切地创建一个新列表。

      Dim myObjectProperties = myObjects.ConvertAll(Function(m) m.myProperty)
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2017-09-28
        • 2018-03-18
        • 1970-01-01
        • 1970-01-01
        • 2011-01-12
        • 2016-12-03
        • 1970-01-01
        • 2010-11-04
        相关资源
        最近更新 更多