它会在问号后删除所有列表框项目文本。 但我想反对。因此,请在问号之前替换我的列表框项目文本。
示例列表框项目文本:
somethingpage?Iwantit
我的代码:
For i = cbox1.Items.Count - 1 To 0 Step -1
For x = cbox1.Items.Count - 1 To 0 Step -1
If cbox1.Items(i).ToString.Contains("?") Then
Dim item = cbox1.Items(i).ToString()
Dim pos = item.IndexOf("?")
item = item.Substring(0, pos)
cbox1.Items(i) = item
End If
Next
答案 0 :(得分:1)
For i As Integer = 0 to cbox1.Items.Count - 1
Dim sItem As String = cbox1.Items(i).ToString()
If sItem.Contains("?") Then
cbox1.Items(i) = sItem.Remove(0, sItem.IndexOf("?"))
End If
Next
答案 1 :(得分:1)
以下是使用Regex
来解决问题的版本......
Private lstObject As New List(Of Object) 'To hold your values
Dim oObject As Object
'Go through changing what we need to and then adding to our list
For i As Integer = 0 To ListBox1.Items.Count - 1
oObject = Regex.Replace(CStr(ListBox1.Items(i)), "^(.*?)\?", "", RegexOptions.IgnorePatternWhitespace)
lstObject.Add(oObject)
Next
'If we have items, add them back to the list
If lstObject.Count > 0 Then
ListBox1.Items.Clear()
For i As Integer = 0 To lstObject.Count - 1
ListBox1.Items.Add(lstObject.Item(i).ToString)
Next
End If
答案 2 :(得分:0)
好的,这样就可以毫无错误地完成这项任务:
Dim FormattedString() As String
For i = cbox1.Items.Count - 1 To 0 Step -1
If cbox1.Items(i).ToString.Contains("?") Then
Dim item = cbox1.Items(i).ToString()
FormattedString = Split(item, "?", 2)
cbox1.Items(i) = FormattedString(0)
End If
Next