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

VB.NET将Dictionary转为SortedDictionary时报重载错误如何解决

问题原因

报错是因为VB.NET中headers变量的类型被隐式识别为Object,而非明确的Dictionary(Of String, String)类型,传入SortedDictionary构造函数时无法匹配对应的重载。默认情况下如果项目没有开启Option Infer,使用Dim 变量 = 实例的写法会把变量类型推导为Object。

修复方案

  • 方法1:明确声明headers的变量类型
    直接给headers指定明确类型即可,修改后代码如下:
Dim headers As Dictionary(Of String, String) = New Dictionary(Of String, String)()
headers.Add("x-amz-date", requestMoment.ToString("yyyyMMddTHHmmssZ"))
headers.Add("x-amz-access-token", gblOAuthToken)
headers.Add("host", "sellingpartnerapi-na.amazon.com")
Dim sortedHeaders As SortedDictionary(Of String, String) = New SortedDictionary(Of String, String)(headers)
  • 方法2:开启Option Infer选项
    在项目属性的编译配置页中开启Option Infer,或者在当前代码文件的最顶部添加Option Infer On,此时VB.NET会自动把headers推断为Dictionary(Of String, String)类型,原有代码无需其他修改即可正常运行。
  • 方法3:传入参数时做强制类型转换
    如果不想修改原有headers的声明逻辑,可以在传入构造函数时强制转换类型:
Dim sortedHeaders As SortedDictionary(Of String, String) = New SortedDictionary(Of String, String)(DirectCast(headers, IDictionary(Of String, String)))

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.15 02:06:06