微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

vb.net – 从数组中删除最后一个元素

如何从VB.NET中删除数组中的最后一个元素.我需要分开街道和房子.

>拆分空格上的地址
>删除最后一个元素(代码中缺少)
>加入数组

>拆分空格上的地址
>获取最后一个元素

我的代码

'split address
Dim addressArray() As String = args.Content.Split(" ")

'remove last element and return the joined array
Return String.Join(" ",addressArray.Remove(addressArray.Length() - 1))

解决方法

Dim foo() As String = "This is a test".Split(New Char() {" "c},StringSplitOptions.RemoveEmptyEntries)
    Array.Resize(foo,foo.Length - 1)
    Dim s As String = String.Join(" ",foo)

或使用清单

Dim foo As New List(Of String)
    foo.AddRange("This is a test".Split(New Char() {" "c},StringSplitOptions.RemoveEmptyEntries))
    foo.RemoveAt(foo.Count - 1)
    Dim s As String = String.Join(" ",foo)

至于使用LINQ和性能,自己判断

Public Class Form1

    'to LINQ or not to LINQ
    'judge for yourself

    Dim stpw As New Stopwatch

    Private Sub Button1_Click(sender As System.Object,_
                              e As System.EventArgs) Handles Button1.Click

        Dim ipsumA() As String = New String() {"Lorem","ipsum","dolor","sit",_
                                               "amet","consectetur","adipisicing",_
                                               "elit","sed","do","eiusmod",_
                                               "tempor","incididunt","ut","labore",_
                                               "et","dolore","magna","aliqua","Ut",_
                                               "enim","ad","minim","veniam","quis",_
                                               "nostrud","exercitation","ullamco",_
                                               "laboris","nisi","aliquip","ex",_
                                               "ea","commodo","consequat","Duis","aute",_
                                               "irure","in","reprehenderit",_
                                               "voluptate","velit","esse","cillum",_
                                               "eu","fugiat","nulla","pariatur","Excepteur",_
                                               "sint","occaecat","cupidatat","non","proident",_
                                               "sunt","culpa","qui","officia","deserunt",_
                                               "mollit","anim","id","est","laborum"}

        Const tries As Integer = 100000
        Debug.WriteLine("")

        stpw.Reset()
        stpw.Start()
        For x As Integer = 1 To tries
            Dim s As String = arrayTake(ipsumA)
        Next
        stpw.Stop()
        Debug.WriteLine(stpw.ElapsedTicks.ToString)

        stpw.Reset()
        stpw.Start()
        For x As Integer = 1 To tries
            Dim s As String = arrayRsz(ipsumA)
        Next
        stpw.Stop()
        Debug.WriteLine(stpw.ElapsedTicks.ToString)

    End Sub

    Private Function arrayRsz(test As String()) As String
        Array.Resize(test,test.Length - 1)
        Return String.Join(" ",test)
    End Function

    Private Function arrayTake(test As String()) As String
        Return String.Join(" ",test.Take(test.Length - 1))
    End Function
End Class

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。

相关推荐