Vb.net 消除文本框中的重复项
我有Textbox1.行(用空格分隔) 如何从每行中删除重复项并显示如下内容:Vb.net 消除文本框中的重复项,vb.net,Vb.net,我有Textbox1.行(用空格分隔) 如何从每行中删除重复项并显示如下内容: 7 10 12 13 14 8 10 14 15 19 12 13 14 15 19 21 23 27 29 50 51 53 55 78 80 2 4 7 8 10 也就是说,从包含同一行上重复编号的整行中删除 Private Sub BttGamblerInput_Click(sender As Object, e As EventArgs) Handles BttGamblerInp
7 10 12 13 14
8 10 14 15 19
12 13 14 15 19
21 23 27 29 50
51 53 55 78 80
2 4 7 8 10
也就是说,从包含同一行上重复编号的整行中删除
Private Sub BttGamblerInput_Click(sender As Object, e As EventArgs) Handles BttGamblerInput.Click
On Error Resume Next
Dim value As Integer
Dim values As New List(Of String)
For Each strValue As String In TxtGamblerImput.Text.Split(" ".ToCharArray, StringSplitOptions.RemoveEmptyEntries)
If Integer.TryParse(strValue.Trim, value) Then
values.Add(value)
End If
没用
Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
For Each line In TxtGamblerOutput.Text
Dim originalArray = TxtGamblerOutput.Text.Split(" ".ToCharArray, StringSplitOptions.RemoveEmptyEntries)
Dim checkArray = originalArray.Distinct().ToArray() ' I haven't used this, so check syntax etc when you code it.
If originalArray.Length = checkArray.Length Then
TxtGamblerOutput.Text = checkArray
Else ' <-- perhaps a bonus here?
' Do something with the invalid line
End If
Next line
End Sub
我没有编码或测试任何东西,但您可以使用
List(of t)
中的Distinct
方法,将输出的长度与当前列表进行比较。另一种方法是使用ArrayList(c.f.用于获取唯一元素的骨骼)
使用数组的伪ish代码:
for each line in the text input
originalArray = line.Text.Split(" ".ToCharArray, StringSplitOptions.RemoveEmptyEntries)
checkArray = originalArray.Distinct().ToArray() ' I haven't used this, so check syntax etc when you code it.
If originalArray.Length = checkArray.Length then
' Your code here to display the valid line
Else ' <-- perhaps a bonus here?
' Do something with the invalid line
End If
Next line
用于文本输入中的每一行
originalArray=line.Text.Split(“.”.ToCharArray,StringSplitOptions.removemptyEntries)
checkArray=originalArray.Distinct().ToArray()'我没有使用这个,所以在编写代码时请检查语法等。
如果originalArray.Length=checkArray.Length,则
'您的代码在此显示有效行
否则就没用了。。。我编辑了我的帖子:(怎样才能修复这个代码?@EugenEnea:"“未工作”并没有给我们提供太多的信息-什么不工作,您是否收到任何错误消息,您的输出是什么,它与您预期的有什么不同。然而,这是一个新问题-使用您正在尝试使用上述信息的特定代码开始一个新问题。@Eugenea:另外-我上面提供的是伪代码,并且是不希望直接工作-你必须做一点工作,以改变我写进工作VB。可能重复你也张贴在这里
Dim numbers() As Integer = {1, 3, 5, 7, 2, 1, 5, 4, 4, 8}
' get the duplicates
Dim dups As New Dictionary(Of Integer, Integer) ' number, count of number
For i = 0 To numbers.Length - 1
If dups.ContainsKey(numbers(i)) Then
dups(numbers(i)) += 1
Else
dups.Add(numbers(i), 1)
End If
Next
' display them
For Each dup In dups
If dup.Value > 1 Then
Console.WriteLine(dup.Key)
End If
Next
Console.ReadLine()
for each line in the text input
originalArray = line.Text.Split(" ".ToCharArray, StringSplitOptions.RemoveEmptyEntries)
checkArray = originalArray.Distinct().ToArray() ' I haven't used this, so check syntax etc when you code it.
If originalArray.Length = checkArray.Length then
' Your code here to display the valid line
Else ' <-- perhaps a bonus here?
' Do something with the invalid line
End If
Next line