- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我在“List(Of KeyValuePair(Of”) 集合上执行 For Each 循环时遇到问题。
我将 ParamArray 传递给函数
ParamArray args() As List(Of KeyValuePair(Of String, Integer))
然后我尝试对集合进行 For Each 操作
For Each arg As KeyValuePair(Of String, Integer) In args
我收到的错误是:
Value of type 'System.Collections.Generic.List(Of System.Collections.Generic.KeyValuePair(Of String, Integer))' cannot be converted to 'System.Collections.Generic.KeyValuePair(Of String, Integer)'
我只是不知道如何做到这一点,而且我找不到任何如何做到这一点的示例。
我现在唯一的想法就是去做
For Each arg As Object In args
然后将对象转换为 KeyValuePair,但必须有一种更简洁的方法来执行此操作...
最佳答案
args
是一个数组。这意味着您有一个 List(Of KeyValuePair(Of String, Integer))
数组。
要访问 for every 中的每个项目,您需要执行以下操作(未经测试):
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
根据我上面的评论:您可能最好使用 Dictionary(Of String, Integer)
和一些 Linq 语句。
编辑:此外,根据您尝试对每个项目执行的操作,以任何方式修改该项目都将导致异常,因为您无法修改正在迭代的集合。
关于vb.net - For Each 循环在 List(Of KeyValuePair(Of String, Integer)) 数组上,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25668813/
我是一名优秀的程序员,十分优秀!