JA1*_*A12 2 vb.net foreach keyvaluepair
我在"列表(KeyValuePair(Of)"集合中执行For Each循环时遇到问题.
我正在将ParamArray传递给函数
ParamArray args() As List(Of KeyValuePair(Of String, Integer))
Run Code Online (Sandbox Code Playgroud)
我正在尝试在Collection上做For Each
For Each arg As KeyValuePair(Of String, Integer) In args
Run Code Online (Sandbox Code Playgroud)
我得到的错误是:
类型'System.Collections.Generic.List(Of System.Collections.Generic.KeyValuePair(Of String,Integer))'的值不能转换为'System.Collections.Generic.KeyValuePair(Of String,Integer)'
我只是无法弄清楚如何做到这一点,我找不到任何如何做到这一点的例子.
我现在唯一的想法是做
For Each arg As Object In args
Run Code Online (Sandbox Code Playgroud)
然后将对象转换为KeyValuePair,但必须有一个更简洁的方法来做到这一点......
args是一个数组.这意味着你有一个数组List(Of KeyValuePair(Of String, Integer)).
要访问每个项目中的每个项目,您需要执行此操作(未经测试):
For Each arg As List(Of KeyValuePair(Of String, Integer)) In args
For Each kvp as KeyValuePair(Of String, Integer) In arg
' Do Stuff
Next
Next
Run Code Online (Sandbox Code Playgroud)
根据我上面的评论:你可能最好使用Dictionary(Of String, Integer)一些和一些Linq语句.
编辑:此外,根据您尝试对每个项目执行的操作,以任何方式修改项目都将导致异常,因为您无法修改正在迭代的集合.