将 object {object[]} 转换为 List<int>

4

我需要转换从

object {object[]}

为了

System.Collections.Generic.List<int>

在对象数组的每个元素中,都有一个object {int}元素。 我从一个COM dll中得到了这个结构。
我想知道最简单的方法是什么。 提前感谢!

我假设它是在调试器中显示的样子。 - D Stanley
3个回答

13

尝试

List<int> intList = objectArray.Cast<int>().ToList();

2
我认为 Cast<int> 更合适,因为“在每个元素内部…”。额外的类型检查应该是多余的。 - Tim Schmelter
在此之前,我需要从对象转换为对象数组[]。 - Thiago
好的,那很简单。object[] idArray = (object[])idObject; - Thiago
1
我决定使用@TimSchmelter建议的强制转换。List<int> idList = idArray.Cast<int>().ToList(); - Thiago

3
List<Int> ObjToList(object[] objects)
{
    List<int> intList = new list<int>();
    foreach (object o in objects)
    {
        intList.Add((int)o);
    }
    return intList;
}

请确保数组中所有的对象都是int类型,以避免出现问题。


1

我的尝试是将对象数组转换为整数数组,并检查原始对象数组中是否有null项。这是我将对象数组转换为List<int>的方式:

using System.Linq;

//Your object array depends on your data source. I am taking an example of json data
object[] myObjectArray= jsonData["data"]; 

int[] myIntegerArray= myObjectArray.Where(x => x != null).Select(x => Convert.ToInt32(x)).ToArray();

List<int> myIntegerList= myIntegerArray.ToList();

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接