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

VB.Net中如何实现同时存储字符串与整数的列表和字典

VB.Net 实现列表/字典混合存储数值与字符串类型的方案

VB.Net 作为强类型语言,默认泛型List(Of T)、Dictionary(Of TKey, TValue)确实要求预先指定固定的元素存储类型,无法直接像Python那样无声明存入混合类型数据,但不需要拆分两个独立列表增加逻辑复杂度,有三种成熟方案可以实现你需要的混合存储效果,完全适配DND战役工具的开发场景。


方案1:指定元素类型为Object(最贴近Python动态列表的实现)

.Net中所有值类型(数值、布尔值等)、引用类型(字符串等)都继承自Object基类,直接将列表/字典的元素类型声明为Object,即可存入任意类型数据,逻辑和你给出的Python示例完全一致。

' 混合类型列表示例,等价于Python的lst = [1, 2, "a", "b"]
Dim lst As New List(Of Object) From {1, 2, "a", "b"}
' 取值输出结果为2,和Python逻辑一致
Console.WriteLine(lst(1))

字典场景也可以用同样方式声明,适配你存储DND战役属性的需求:

' 混合类型字典型示例
Dim dndCampaignData As New Dictionary(Of String, Object) From {
    {"CampaignTitle", "幽暗地域深渊远征"},
    {"PlayerCount", 4},
    {"AverageLevel", 8},
    {"IsHardcoreRule", True}
}

取值处理时,用TypeOf判断元素实际类型再做对应转换即可,不会出现类型错误,适配你「文本描述+掷骰数值」的处理逻辑:

For Each item In dndCampaignData
    If TypeOf item.Value Is Integer Then
        ' 数值类型走掷骰计算、数值校验逻辑
        Dim numValue = CInt(item.Value)
    ElseIf TypeOf item.Value Is String Then
        ' 字符串类型走文本拼接、描述展示逻辑
        Dim strValue = CStr(item.Value)
    End If
Next

方案2:自定义实体类(最适配DND项目长期维护的方案)

如果你的混合存储场景是固定存「文本描述符+掷骰数值属性」的结构化数据,更建议自定义专属实体类,后续遍历处理、拼接SQL写入数据库的时候逻辑更清晰,也不会出现误存错误类型数据的问题:

' 定义DND战役属性实体
Public Class DndAttribute
    Public Property DescText As String ' 存储描述文本
    Public Property RollValue As Integer? ' 存储掷骰生成的数值,支持空值
End Class

' 使用示例
Dim attrList As New List(Of DndAttribute) From {
    New DndAttribute With {.DescText = "力量属性", .RollValue = 18},
    New DndAttribute With {.DescText = "角色阵营", .RollValue = Nothing}
}

后续写INSERT INTO语句入库时,直接遍历实体类取对应属性即可,不需要反复做类型判断,代码维护成本更低。


方案3:使用值元组存储固定结构的混合数据

如果你的数据结构固定为「文本标识+可选数值」的配对形式,不需要存入其他杂类型,用值元组的实现更轻量,不需要额外定义类:

' 声明值元组列表,第一个字段存文本描述,第二个字段存可空数值
Dim attrTupleList As New List(Of (desc As String, val As Integer?)) From {
    ("敏捷属性", 16),
    ("角色背景", Nothing)
}
' 取值输出结果为16
Console.WriteLine(attrTupleList(0).val)

注意:不建议使用.Net早期版本的非泛型ArrayList、Hashtable实现混合存储,这类遗留实现性能远低于泛型集合,也没有开发时的类型提示,容易写出隐藏bug。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.27 02:21:22