相关疑难解决方法(0)

对象到字符串数组

我试图将一个对象(这里声明为'obj':object is array,primitive)转换为字符串数组.

对象可以是任何uint [],int16 []等.

我一直在尝试使用

string[] str = Array.ConvertAll<object, string>((object[])obj, Convert.ToString);
Run Code Online (Sandbox Code Playgroud)

当我尝试将未知类型对象转换为object []时,会出现问题.我一直在犯错误.

我做的一次尝试失败了,正在使用

object[] arr = (object[])obj;
Run Code Online (Sandbox Code Playgroud)

要么

IEnumerable<object> list = obj as IEnumerable<object>
object[] arr = (object[])list;
Run Code Online (Sandbox Code Playgroud)

我在转换时看到了有关值类型和引用类型问题的帖子.

是否有一个简单的代码可以处理对象[]的转换,无论对象的类型如何,只要它是一个数组?我试图避免手动处理每种可能的类型铸件.

提前致谢

c# c#-3.0 c#-4.0

46
推荐指数
2
解决办法
9万
查看次数

如何将对象转换为对象[]

我有一个object值可能是像int[]或的几种数组类型之一string[],我想将它转换为string[].我的第一次尝试失败了

void Do(object value)
{
    if (value.GetType().IsArray)
    {
        object[] array = (object[])value;
        string[] strings = Array.ConvertAll(array, item => item.ToString());
        // ...
    }
}
Run Code Online (Sandbox Code Playgroud)

运行时错误Unable to cast object of type 'System.Int32[]' to type 'System.Object[]',回想起来很有意义,因为我int[]不包含盒装整数.

我四处寻找这个工作版本:

void Do(object value)
{
    if (value.GetType().IsArray)
    {
        object[] array = ((Array)value).Cast<object>().ToArray();
        string[] strings = Array.ConvertAll(array, item => item.ToString());
        // ...
    }
}
Run Code Online (Sandbox Code Playgroud)

我想这没关系,但看起来很复杂.谁有更简单的方法?

c#

13
推荐指数
1
解决办法
2万
查看次数

标签 统计

c# ×2

c#-3.0 ×1

c#-4.0 ×1