2013-10-09 55 views
1

是否可以将字符串数组作为字典中的值?我需要将描述(Hour2)保存为关键字,并且可以同时访问价格(elements_PR(4))和时间偏移量(1)。有没有一个好的方法来做到这一点?包含字符串数组的字典作为值

Dim pr_val(2) As String 
Dim PR As New Dictionary(Of String, pr_val) 

PR.Add("Hour2", {elements_PR(4), "1"}) 
+1

如果修复声明我没有看到任何问题'昏暗的PR作为新字典(字符串,字符串())'。那么,当然elements_PR(4)是一个字符串吧? – Steve

+0

Dim PR As New Dictionary(String,String())和PR.Add(“Hour1”,{“”,“”})也不起作用。错误:逗号,')'或预期的有效表达式继续。 –

+0

它适合我。听起来你错过了一个括号。 –

回答

1

没有理由为什么你不能做到这一点 - 你也可以使用类型元组的值(字符串,字符串),如果要素的数量是固定的提前 - 在这种情况下,2。它比较容易进行比较,并且也是不可变的,这通常是一个好主意。

1

你当然可以。尝试这样的:

Dim PR As New Dictionary(Of String, IEnumerable(Of String)) 
PR.Add("Hour2", {elements_PR(4), "1"}) 
+0

我也无法使它工作。我尝试更改声明并添加以下内容:PR.Add(“Hour1”,{“”,“”})。但它会给出错误:逗号,')'或预期的有效表达式继续。 –

+0

你确定你不缺少括号吗? –

1

在我看来,你可以创建一个代表价格和时间偏移的类。因此,您可以执行类似PR.Add("Hour2", instanceOfClass)的操作。

根据您的情况描述的含义,您甚至可以将它包含在您的课堂中。它将允许您使用另一种方法,使用List(Of YourClass),其中包含具有说明,价格和时间偏移的项目列表。要通过“键”检索项目,您可以使用一些Linq。

0

简短的回答 - 是的。假设下面的被宣布的地方:

Dim elements_PR(4) As String : elements_PR(4) = "Hello" 
Dim PR As New Dictionary(Of String, String()) 

你可以这样做:

PR.Add("Hour2", {elements_PR(4), "1"}) 

Dim pr_val() As String = {elements_PR(4), "1"} 
PR.Add("Hour1", pr_val) 
相关问题