超全模态模型 × Harness 升级,升级解锁 ArkClaw,最新支持 DeepSeek-V4 系列与 GLM-5.1
嘿,这个问题我太熟悉了!你遇到的错误核心原因是:StationList是List<object>类型,所以在OrderBy的lambda表达式里,list被编译器识别为object——而object本身并没有索引器([]),自然就会抛出"Cannot apply indexing with [] to an expression of type 'object'"的错误。
StationList
List<object>
OrderBy
list
object
[]
下面给你两种解决方案,从临时修复到更规范的最佳实践:
如果你暂时不想改动数据结构,可以通过Cast把每个元素转换回List<object>,同时显式转换价格的类型(因为list[2]是object,需要转成int才能正确排序):
Cast
list[2]
int
// 注意这里SortedList的类型要改成List<List<object>> List<List<object>> SortedList = StationList .Cast<List<object>>() // 将每个object转成List<object> .OrderBy(list => (int)list[2]) // 显式转换为int类型 .ToList();
⚠️ 注意:这种方法需要确保StationList里的每一个元素都是List<object>,并且第三个元素确实是int类型,否则运行时会抛出转换异常。
用List<object>嵌套存储数据非常不优雅,不仅可读性差,还容易出现类型错误。更好的方式是创建一个专门的实体类来存储车站信息:
public class Station { public string Name { get; set; } public string Area { get; set; } public int Price { get; set; } }
List<Station> StationList = new List<Station>(); // 添加数据示例 StationList.Add(new Station { Name = "Central Station", Area = "Downtown", Price = 20 });
这时候排序就变得非常简洁直观,而且完全不会有类型问题:
List<Station> SortedList = StationList.OrderBy(s => s.Price).ToList();
这种方式的优势在于:
内容的提问来源于stack exchange,提问作者roguedev
超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起
模型再升级,30秒超长叙事, 模态参考扩容
模型自由,工具不限,最新支持 Deepseek-V4 系列、GLM-5.3 系列
超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列
大模型19元起,Al应用9.9元畅享,新人首购爆款尽享优惠