【发布时间】:2014-07-29 14:09:03
【问题描述】:
我有一个用户输入字符串的程序。此字符串长度始终是 8 的倍数。
所以为了转换字符串,我将字符串每隔 8 个字符拆分为一个数组。
我用这段代码做到这一点
Dim substrings = Enumerable.Range(0, input.Length \ 8).[Select](Function(i) input.Substring(i * 8, 8))
效果很好。
然后我可以输入String.Join(" ", substrings),它会正常工作,它接受用户输入的任何内容,并在每 8 个字符之间放置一个空格。
但是,如果我尝试这样做:
Dim indexOfEntry
For Each e In substrings
indexOfEntry = Array.IndexOf(substrings, e)
Next
我收到一个错误:
An unhandled exception of type 'System.InvalidCastException' occurred in DataCalculator.exe
Additional information: Unable to cast object of type 'WhereSelectEnumerableIterator`2[System.Int32,System.String]' to type 'System.Array'.
我该如何解决这个问题?
【问题讨论】:
-
代替 For Each,你能不能只做 For indexOfEntry As Integer = 0 To substrings.Length-1 ?
标签: .net arrays vb.net indexing