在VB.NET中如何在Hashtable中根据指定ID查找并提取对应Name值
解决方案
要实现根据提取的ID查找对应的Name值,你可以按以下方式修改代码:
首先确保line变量已被正确赋值,然后提取ID并进行查找,同时建议增加存在性检查避免异常:
Sub Main() ' Create Hashtable instance. Dim table As Hashtable = New Hashtable table.Add("01", "John") table.Add("02", "Bob") table.Add("03", "Joe") table.Add("04", "Mary") ' 假设line已经被赋值为目标字符串 Dim line As String = "XXXX01YYYY" ' 示例字符串,Substring(4,2)会得到"01" Dim targetId As String = line.Substring(4, 2) ' 检查Hashtable中是否存在该ID If table.ContainsKey(targetId) Then Dim nameValue As String = table(targetId).ToString() Console.WriteLine($"找到对应Name: {nameValue}") ' 这里可以根据需求使用nameValue变量做后续处理 Else Console.WriteLine($"未找到ID为{targetId}的记录") End If End Sub
关键点说明
- 先通过
line.Substring(4,2)提取目标ID,注意要保证line的长度至少为6,否则会抛出ArgumentOutOfRangeException,如果不确定line长度,建议先做长度检查。 - 使用
ContainsKey方法判断ID是否存在,避免直接取值时出现KeyNotFoundException。 - 取值后通过
.ToString()转换为字符串类型,因为Hashtable存储的是Object类型。
内容的提问来源于stack exchange,提问作者Martha
相关产品推荐
相关产品推荐

