Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/vb.net/17.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Vb.net 消除文本框中的重复项_Vb.net - Fatal编程技术网

Vb.net 消除文本框中的重复项

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

我有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 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