You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

C#中如何从Object数组内的List获取指定元素?

解决C# Object数组中获取List元素的问题

问题出在data是Object[]类型,数组里的元素编译时类型是Object,而非List<string>,所以直接用data[1][1]会报错——编译器不知道data[1]是List,自然不支持索引访问。另外要注意:你要的"info"是第二个List的第一个元素(索引0),不是索引1,之前的data[1][1]会取到"info2",这点需要纠正。

几种可行的解决方法:

  1. 显式强制转换
    先把data[1]转换成List<string>,再访问目标元素:
// 转换后获取第一个元素"info"
var info = ((List<string>)data[1])[0];
  1. 安全转换(用as关键字)
    如果不确定转换是否成功,用as可以避免抛出异常,转换失败会返回null:
var targetList = data[1] as List<string>;
if (targetList != null)
{
    var info = targetList[0];
    // 后续操作
}
  1. 泛型方法简化(可选)
    要是需要多次从数组里取List元素,可以写个小方法减少重复代码:
T GetListElement<T>(object[] array, int listIndex, int elementIndex)
{
    var list = array[listIndex] as List<T>;
    return list?[elementIndex];
}

// 调用示例
var info = GetListElement<string>(data, 1, 0);

另外,data[1,1]是二维数组的访问语法,你的data是一维数组,这种写法本身就不正确,不要使用。

内容的提问来源于stack exchange,提问作者crux.

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.04 15:25:35