首页 > 解决方案 > 转换类型错误:无法将类型字符串转换为整数

问题描述

嗨,伙计们,我不断收到一个异常错误,即字符串无法转换为整数,并且不太清楚为什么...我尝试将 toString() 方法添加到许多不同的地方以尝试解决,但没有任何效果...你能不能看看这个,看看我在哪里愚蠢。我基本上是想看看何时找到一个新项目,看看它是否以历史记录中的所有行开头,将其拆分为单词“”“URL”“”

我在抛出异常的 if 语句上方发表了评论。

确切的错误是:

System.InvalidCastException: '从字符串 "{ "Title": "Item 1" 到类型 'Integer' 的转换无效。'

内部异常

FormatException:输入字符串的格式不正确。

Dim History = File.ReadAllLines("history.json")
Dim NewestItems = File.ReadAllLines("items.json")
Dim InitialItems = File.ReadAllLines("Init-items.json")

For x As Integer = 0 To InitialItems.Length - 1
        Dim current As String = InitialItems(0)
        Dim splitAt As String = """Url"""
        Dim index As Integer = current.IndexOf(splitAt)
        Dim output As String = current.Substring(0, index + splitAt.Length)
        Dim recurringItemFound = 0
        If Not NewestItems(x).StartsWith(output) And Not History.Contains(NewestItems(x)) Then

            If cbxRecurringItemsOff.Checked = True Then
                For Each RecurringItem In History
                    Dim indexHistory As Integer = NewestItems(x).IndexOf(splitAt)
                    Dim outputHistory As String = NewestItemss(x).Substring(0, indexHistory + splitAt.Length)
                    '********the below if statement throws an Exception error*********
                    If NewestItems(RecurringItem).StartsWith(outputHistory) Then
                        recurringItemFound = 1
                    End If
                Next
            End If
Next

标签: vb.net

解决方案


使用Option Strictand Option Explicit- 这会标记一些问题。

在这种情况下,您将RecurringItem其用作数组中的索引,NewestItems因此它试图转换RecurringItemInteger. 但是,我假设RecurringItem来自History其中的一个数组String。因此,您正在尝试使用从文件中读取的字符串作为整数,而程序现在正在“敲击”。

你真的是这个意思NewestItems(x).StartsWith(outputHistory)吗?


推荐阅读