将此C#字典转换为VB.NET

将此C#字典转换为VB.NET,c#,vb.net,code-conversion,C#,Vb.net,Code Conversion,如何将以下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<

如何将以下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"}}
};
private static readonly Dictionary ValidHtmlTags=新字典{
{“param”,新列表(){“name”,“value”},
{“对象”,新列表(){“id”,“type”},
{“嵌入”,新列表(){“src”,“type”,“wmode”}
};
网上也有一些不错的C#VB.NET转换程序。我过去常常得到:

然后构建每个列表(字符串)并分别添加到ValidHtmlTags。例如

Dim paramList As New List(Of String)()
paramList.Add("name")             
paramList.Add("value")          
ValidHtmlTags.Add("param", paramList)              
我不确定你能不能在VB.NET中将一系列值传递到(字符串的)列表构造函数中。

在VB.NET上也有一些不错的C#VB.NET转换。我过去常常得到:

然后构建每个列表(字符串)并分别添加到ValidHtmlTags。例如

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

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

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

详情如下:

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")

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

详情如下:

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")
然后在Sub或函数中的某个位置:

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")
然后在Sub或函数中的某个位置:

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")

您需要这样的内容(对于.NET 3.5):


您需要这样的内容(对于.NET 3.5):


Jason-新列表(字符串){“名称”,“值”}不起作用。我试图将大括号改为(,但仍然不起作用。我认为VB.Net直到v4才支持集合初始值设定项。0@vamsivanka抱歉,目前在C#和VB之间跳了很多次,所以暂时有点混乱。更新了我的答案以显示更好的解决方案。Jason-新列表(字符串){“name”,“value”}不起作用。我试着把花括号改成(,但仍然不起作用。我认为VB.Net直到v4才支持集合初始值设定项。0@vamsivanka-抱歉,目前在C#和VB之间跳了很多次,所以暂时有点混乱。我更新了我的答案,以显示更好的解决方案。Eilon-它类似但有点不同,因为我正在使用此词典检查html语法。第一个值ue“param”是标记名,第二个{“name”,value}是该标记的属性。我的观点是,.NET 3.5中的VB.NET甚至不支持这种简单的语法,因此它肯定不支持嵌套对象初始值设定项的更复杂的语法。在.NET 4中,他们在VB.NET中添加了对这种语法的支持,正如您在我链接的文章中所看到的。这篇文章包含几个advan的示例ced场景,包括与您的类似的场景。Eilon-其类似但略有不同,因为我正在使用此字典检查html语法。第一个值“param”是标记名,第二个值{“name”,value}是该标记的属性。我的观点是,.NET 3.5中的VB.NET甚至不支持这种简单的语法,因此它肯定不支持嵌套对象初始值设定项的更复杂的语法。在.NET 4中,他们在VB.NET中添加了对这种语法的支持,正如您在我链接的文章中所看到的。这篇文章包含几个advan的示例ced场景,包括与您类似的场景。