vb,关于三维坐标数组去重

如题,输入坐标后输出,以,隔开的格式,要是有人把代码写出来就好了

代码如下,有帮助麻烦点个采纳【本回答右上角】,谢谢~~

img

Imports System.Linq
Imports System.Collections.Generic

Module Module1
    ''' <summary>
    ''' 移除重复坐标
    ''' </summary>
    ''' <param name="arr">拆分后的坐标数组</param>
    ''' <returns></returns>
    Function removeRepeat(arr)
        Dim l = arr.Length
        Dim list As List(Of String)
        list = New List(Of String)
        For i = 0 To l - 1 Step 3 '3个一组压入list中
            list.Add(arr(i) & "," & arr(i + 1) & "," & arr(i + 2))
        Next
        Dim rs = list.Distinct() '去重
        removeRepeat = String.Join(",", rs) '重新组合
    End Function
    Sub Main()
        Console.WriteLine("请输入坐标,中文状态下逗号分隔")
        Dim s = Console.ReadLine()
        Dim arr = s.Split(",")
        Dim l = arr.Length
        If l Mod 3.0 <> 0 Then
            Console.WriteLine("数据错误,坐标项需要为3的倍数!")
        Else
            s = removeRepeat(arr)
            Console.WriteLine("去重后:" & s)
        End If
        Console.ReadKey()

    End Sub

End Module

这个是VBScript的,理论上vb6应该也可以用,你试试


Function removeRepeat(s)
    arr=split(s,",")
    l=ubound(arr)
    if (l+1) mod 3<>0 then
        removeRepeat="数据错误,坐标项需要为3的倍数!"
        exit function
    end if
    ns=""
    For i = 0 To l Step 3 '3个一组压入list中
        item=arr(i) & "," & arr(i + 1) & "," & arr(i + 2)
        if instr(ns,item)=0 then
            ns=ns&","&item
        end if
    Next
    removeRepeat = right(ns,len(ns)-1)'去掉一个逗号
End Function