【问题标题】:How can I convert IEnumerable<object> to List<IFoo> where each object is an IFoo?如何将 IEnumerable<object> 转换为 List<IFoo>,其中每个对象都是 IFoo?
【发布时间】:2012-06-01 18:54:30
【问题描述】:

如何将IEnumerable&lt;object&gt; 转换为List&lt;IFoo&gt;,其中每个对象都是IFoo

我有一个IEnumerable&lt;object&gt;someCollectionsomeCollection 中的每个项目都是一个IFoo 实例。如何将someCollection 转换为List&lt;IFoo&gt;?我可以使用 convert 或 cast 之类的东西来代替循环并建立一个列表吗?

【问题讨论】:

    标签: c# linq generics ienumerable


    【解决方案1】:

    使用 LINQ,您可以使用 Cast 投射项目,并使用 ToList 获取列表。

    试试:

     IEnumerable<object> someCollection; //Some enumerable of object.
     var list = someCollection.Cast<IFoo>().ToList();
    

    【讨论】:

    • LINQ Cast 和 ToList IS 循环并建立一个列表;它只是隐藏的。答案是真的没有循环就没有办法做到这一点。
    【解决方案2】:

    试试这个:

    enumerable.Cast<IFoo>().ToList();
    

    【讨论】:

      【解决方案3】:

      someCollection.Cast&lt;IFoo&gt;().ToList()

      【讨论】:

        猜你喜欢
        • 2019-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多