为了账号安全,请及时绑定邮箱和手机立即绑定

ksor PHP和排序VB.Net之间相同结果的代码比较

ksor PHP和排序VB.Net之间相同结果的代码比较

PHP
慕森卡 2022-01-08 14:51:53
我需要对VB.Net等价的数组进行排序ksorton PHP。我尝试比较它们,但结果不同。这是我的PHP 代码:<?php$parameter['data[1000].isi']= '0';$parameter['data[111].isi']= '0';$parameter['data[112].isi']= '0';$parameter['data[100].isi']= '0';$parameter['data[3].isi']= '0';$parameter['data[2].isi']= '0';$parameter['data[1].isi']= '0';$parameter['data[0].isi']= '0';ksort($parameter);foreach($parameter as $key => $val){    echo $key." = ".$val."<br />";}?>该输出云:data[0].itemNo = 0data[1000].isi = 0data[100].isi = 0data[111].isi = 0data[112].isi = 0data[1].isi = 0data[2].isi = 0data[3].isi = 0这是我的VB.NET 代码:        Dim isi As New Dictionary(Of String, String)        isi.Add("data[1000].isi", 0)        isi.Add("data[111].isi", 0)        isi.Add("data[112].isi", 0)        isi.Add("data[100].isi", 0)        isi.Add("data[3].isi", 0)        isi.Add("data[2].isi", 0)        isi.Add("data[1].isi", 0)        isi.Add("data[0].isi", 0)        Dim coba As New ArrayList()        Dim str, strisi As String        For Each kvp As KeyValuePair(Of String, String) In isi            coba.Add(kvp.Key & "=" & kvp.Value)        Next        coba.Sort()        For Each apa As String In coba            str = str & "&" & apa        Next        TextBox1.Text = str该输出云:&data[0].isi=0&data[1].isi=0&data[100].isi=0&data[1000].isi=0&data[111].isi=0&data[1111].isi=0&data[112].isi=0&data[2].isi=0&data[3].isi=0两种排序的输出不同。我需要使VB.Net输出与PHP输出相同。这样做很热?
查看完整描述

1 回答

?
元芳怎么了

TA贡献1798条经验 获得超7个赞

如果您使用的是 VB 2005 或更高版本,则不应使用ArrayList. 改用 a List(Of String)。然后你可以改变这个:


coba.Sort()

对此:


coba.Sort(Function(x, y) String.Compare(x, y, StringComparison.Ordinal))

ArrayList如果您出于某种原因确实必须使用 ,您仍然可以使用 做类似的事情,但这涉及定义您自己的类:


Public Class OrdinalStringComparer

    Implements IComparer


    Public Function Compare(x As Object, y As Object) As Integer Implements IComparer.Compare

        Return String.Compare(DirectCast(x, String), DirectCast(y, String), StringComparison.Ordinal)

    End Function


End Class

然后在调用时传递一个实例Sort:


coba.Sort(New OrdinalStringComparer)

请注意,如果您想知道序数比较是如何执行的以及替代方案是什么,您应该查看StringComparison枚举的文档。


查看完整回答
反对 回复 2022-01-08
  • 1 回答
  • 0 关注
  • 156 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信