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

我需要对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 = 0

data[1000].isi = 0

data[100].isi = 0

data[111].isi = 0

data[112].isi = 0

data[1].isi = 0

data[2].isi = 0

data[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输出相同。这样做很热?


慕森卡
浏览 158回答 1
1回答

元芳怎么了

如果您使用的是 VB 2005 或更高版本,则不应使用ArrayList. 改用 a List(Of String)。然后你可以改变这个:coba.Sort()对此:coba.Sort(Function(x, y) String.Compare(x, y, StringComparison.Ordinal))ArrayList如果您出于某种原因确实必须使用 ,您仍然可以使用 做类似的事情,但这涉及定义您自己的类:Public Class OrdinalStringComparer&nbsp; &nbsp; Implements IComparer&nbsp; &nbsp; Public Function Compare(x As Object, y As Object) As Integer Implements IComparer.Compare&nbsp; &nbsp; &nbsp; &nbsp; Return String.Compare(DirectCast(x, String), DirectCast(y, String), StringComparison.Ordinal)&nbsp; &nbsp; End FunctionEnd Class然后在调用时传递一个实例Sort:coba.Sort(New OrdinalStringComparer)请注意,如果您想知道序数比较是如何执行的以及替代方案是什么,您应该查看StringComparison枚举的文档。
打开App,查看更多内容
随时随地看视频慕课网APP