将对象转换为数组类型

11
我正在将一个数组作为对象传递给 Web 方法。如何在 Web 方法中将对象转换为数组?

我正在将一个数组作为对象传递给 Web 方法。如何在 Web 方法中将对象转换为数组?

public static string sample(object arr)
{
    string[] res= (string[])arr; //convertion object to string array
    return "";
}

我遇到了如下错误

在用户代码中未处理的情况下,在 Flair.dll 中发生了 'System.InvalidCastException' 类型的异常。


2
在调试器中查看变量arr并检查它的类型。 - Justin Harvey
通过使用 Type x=arr.GetType(),变量 x 的值将会是 object[] - Safeena
object[] 不等于 string[] - Ceisc
请看这个链接:https://dev59.com/82gv5IYBdhLWcg3wPObz - Jamaxack
4个回答

9

试试这个:

public static string sample(object arr)
{

    object[] res= arr as object[];
    if (res != null)
    {
        string[] sRes = res.OfType<string>().ToArray();
    }
    return "";
}

5

最简单的方法:

public static string[] Convert(object input)
{
  return input as string[];
}

但是如果您可以进行类型转换的话,您需要验证输入,或者将其转换为对象数组并在每个元素上调用ToString()方法。

5

试试这个:

public static string sample(object arr)
{
    string[] res = arr as string[]; //convertion object to string array
    return "";
}

3
当进行向下转换时,需要检查以下内容:
public static string sample(object arr)
{
    string[] res=   arr as string[];  
   if (res!=null)
       {
            //ok to continue
       }
   else
      {
         //arr is not string[]
      }
    return "";
}

如果你不确定 arr 是否为 string[],请尽量避免使用 (string[])arr


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