【问题标题】:Converting object to List<object>将对象转换为 List<object>
【发布时间】:2013-03-12 03:33:13
【问题描述】:

我看过类似的问题,但没有一个完全适合。我有一个恰好包含一个列表的对象。我想把它变成我可以列举的东西。

例如:

object listObject;          // contains a List<Something>
List<object> list;

list = listObject as List<object>;   // list contains null after

foreach ( object o in list )
{
    // do stuff
}

从 object 到 List 的转换是问题。

编辑:

我完成了什么:

object listObject;          // contains a List<Something>
List<object> list;

IEnumerable enumerable = listObject as IEnumerable;

if ( enumerable != null )
{
    list = enumerable.Cast<object>().ToList();

    foreach ( object o in list )
    {
         // do stuff
    }
}

【问题讨论】:

    标签: c# list object


    【解决方案1】:

    试试这个:

    list = (listObject as IEnumerable).Cast<object>().ToList()
    

    【讨论】:

    • 如果不能将listObject 转换为IEnumerable,则表达式(listObject as IEnumerable).Cast&lt;object&gt;() 将抛出NullReferenceException。如果listObject 为非空且未实现IEnumerable,则表达式((IEnumerable)listObject).Cast&lt;object&gt;() 提供的异常信息稍微多一些。
    • @Corey - 我只是在等待所需的 10 分钟接受。
    • @280Z28 - 我明白在我的代码中,我保证它会是一个列表。
    • @BillP3rd 抱歉。我看到了很多很好的优雅的答案,但从来没有得到认可:)
    猜你喜欢
    • 2017-07-04
    • 2021-09-27
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多