1

如何将以下 C# 代码转换为 VB.NET?

转换工具做得不好。

private static readonly Dictionary<string, List<string>> ValidHtmlTags = new Dictionary<string, List<string>> {
    { "param", new List<string>() {"name","value"}},
    { "object", new List<string>() {"id","type"}},
    { "embed", new List<string>() {"src","type","wmode"}}
};
4

4 回答 4

10

我相信答案是 VB.NET 3.5 不支持集合初始化语法。

.NET 4 中的 VB.NET 确实支持集合初始化器,如下所示:

Dim days = New Dictionary(Of Integer, String) From
    {{0, "Sunday"}, {1, "Monday"}}

前面的代码示例等价于下面的代码。

Dim days = New Dictionary(Of Integer, String)
days.Add(0, "Sunday")
days.Add(1, "Monday")
于 2009-12-30T22:21:07.133 回答
6

你想要这样的东西(对于.NET 3.5):

Shared Sub New()
    Dim dict As New Dictionary(Of String, List(Of String))
    Dim l1 As New List(Of String)
    l1.Add("name")
    l1.Add("value")
    dict.Add("param", l1)
    Dim l2 As New List(Of String)
    l2.Add("id")
    l2.Add("type")
    dict.Add("object", l2)
    Dim l3 As New List(Of String)
    l3.Add("src")
    l3.Add("type")
    l3.Add("wmode")
    dict.Add("embed", l3)
    MyClass.ValidHtmlTags = dict
End Sub

Private Shared ReadOnly ValidHtmlTags As Dictionary(Of String, List(Of String))
于 2009-12-30T22:26:04.957 回答
1

也有一些不错的 C# <--> VB.NET 在线转换。我使用http://www.developerfusion.com/tools/convert/csharp-to-vb/来获得:

Private Shared ReadOnly ValidHtmlTags As New Dictionary(Of String, List(Of String))() 

然后构建每个 List(Of String) 并分别添加到 ValidHtmlTags 中。例如。

Dim paramList As New List(Of String)()
paramList.Add("name")             
paramList.Add("value")          
ValidHtmlTags.Add("param", paramList)              

我不确定您是否可以将值列表传递到 VB.NET 中的 List(Of String) 构造函数中。

于 2009-12-30T22:19:10.350 回答
1
Private Shared ReadOnly ValidHtmlTags As Dictionary(Of String, List(Of String)) = New Dictionary(Of String, List(Of String))

然后在 Sub 或 Function 的某个地方:

ValidHtmlTags.Add("param", New List(Of String))
ValidHtmlTags("param").Add("name")
ValidHtmlTags("param").Add("value")

ValidHtmlTags.Add("object", New List(Of String))
ValidHtmlTags("object").Add("id")
ValidHtmlTags("object").Add("type")

ValidHtmlTags.Add("embed", New List(Of String))
ValidHtmlTags("embed").Add("src")
ValidHtmlTags("embed").Add("type")
ValidHtmlTags("embed").Add("wmode")
于 2009-12-30T22:25:44.847 回答