如何访问Sorted List中存储的结构体成员?sortedList.GetByIndex(i).name是否可行?
问题原因与解决方案
你当前写法不生效的核心原因是:绝大多数SortedList实现的GetByIndex方法返回值为通用的object/空接口类型,没有显式转换为你自定义的Section结构体类型前,无法直接访问结构体内部的name成员。
分常见开发场景的正确写法如下:
- 如果你使用的是C#非泛型
SortedList
对返回值做显式强转后访问即可:((Section)linkedList.GetByIndex(i)).name - 如果你使用的是C#泛型版本
SortedList<string, Section>
更推荐直接通过Values集合的索引器访问,写法更简洁:linkedList.Values[i].name - 如果你使用的是Go语言的第三方SortedList实现
对返回值做类型断言后访问即可:linkedList.GetByIndex(i).(Section).name
额外注意:如果
Section是值类型,直接修改通过上述方法拿到的结构体副本不会同步更新SortedList内部存储的内容,需要修改完成后重新赋值回原位置,或者调整为引用类型存储到SortedList中。
内容的提问来源于stack exchange,提问作者Ethereallie
相关产品推荐
相关产品推荐

