C# - 将对象转换为数组以通过索引获取数据

时间:2014-07-17 19:07:43

标签: c#

我有一个webservice,它返回一个带有数据的对象

 object data = _wsUsuario.CarregarDadosUsuario(_view.Usuario);

此对象名为data,返回以下内容:
[0] 84
[1] Marcelo Camargo
[2] myemail@myprovider.com
[3] 2

如果我尝试做

MessageBox.Show(data[0]);

然后编译器说我:

Cannot apply indexing to an expression of type 'object'。我搜索并想知道是否有办法将字符串和整数的对象转换为数组。你能帮我个忙吗?

2 个答案:

答案 0 :(得分:2)

假设数据是一个字符串数组,那么你需要相应地转换它:

object[] oData = (data as object[]) ?? new object[0];

这将 TRY 转换为object[]但如果它不可转换,它将返回null,而空合并运算符??将返回一个空对象数组

答案 1 :(得分:1)

对象有索引器。数组

我认为你将函数返回类型从特定的强类型对象(某种数组)下载到基本的'对象'中。

会发生什么:

// res should be an array
CarregarDadosUsuarioReturnType res = _wsUsuario.CarregarDadosUsuario(_view.Usuario);
MessageBox.Show(res[0]);

如果由于任何原因,该服务隐式收到一个对象,只需将其转换为:

object data = _wsUsuario.CarregarDadosUsuario(_view.Usuario);
var arr = data as ArrType[]; // where ArrType = the array type.
MessageBox.Show(arr[0]);