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

本文关键字:索引 获取 数据 数组 对象 转换 | 更新日期: 2023-09-27 18:13:19

我有一个webservice,返回一个对象与数据

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

这个对象,称为data,返回以下内容:
[0] 20
[1]马塞洛·卡马戈
[2] myemail@myprovider.com
[3] 2

如果我想做

MessageBox.Show(data[0]);

然后编译器说:

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

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

假设数据是字符串数组,那么您需要对其进行相应的强制类型转换:

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

这将尝试转换到object[],但如果它是不可转换的,它将返回null和空合并操作符??将返回一个空对象数组代替。

对象没有索引器。数组

我认为你把函数的返回类型从一个特定的强类型对象(某种数组)降级为一个基本的"对象"。

应该发生什么:

// 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]);