2011-03-12 203 views
0

我很难在vb.net中排序2维数组。一行有5列。原始数组有3000行。我怎样才能得到有效的分类与pdtId。我试图找到谷歌搜索,无法得到正确的答案给我。vb.net中的2维数组排序

(0, 0) = pdtId "string" 
(0, 1) = brand name 
(0, 2) = category Id 
(0, 3) = url 
(0, 4) = date 

(1, 0) = pdtId "string" 
(1, 1) = brand name 
(1, 2) = category Id 
(1, 3) = url 
(1, 4) = date 

。 。 3000行 任何人都可以,你能帮助我,麻烦就大了,:(

+0

http://msdn.microsoft.com/en-us/library/cxt053xf.aspx – 2011-03-12 16:49:01

+0

@Jaroslav:Sort方法仅适用于一维数组。 – 2011-03-12 17:45:20

+0

@Doc Brown:他可以很容易地读取数据到一个对象数组,而不是二维数组... – 2011-03-12 18:09:16

回答

0

你真的应该使用数组的数组在这里 - 多维数组仅用于当数“栏”(第2指数)是不同的行(第一个指数)之间。

如果你做这个,而不是一个或多个阵列,使用的Array.Sort解决问题变得非常容易。

+0

谢谢你的回复。我不太明白。我是新手, – user656760 2011-03-13 02:17:25

1

不要使用二维数组或数组的数组。更好地为你的五个领域创建一个类,并将该类的对象放入一维数组中:

Public Class MyData 
    Implements IComparable(Of MyData) 

    Public pdtId As String 
    Public brand_name As String 
    Public category_Id As String 
    Public url As String 
    Public theDate As Date 

    Public Overloads Function CompareTo(ByVal obj As MyData) As Integer _ 
      Implements IComparable(Of MyData).CompareTo 
     Return pdtId.CompareTo(obj.pdtId) 
    End Function 

End Class 


Sub Main() 
    Dim myArray(3000) As MyData 

    ' Code to fill the array 
    ' ... 

    Array.Sort(myArray) 

End Sub 
+0

感谢百万,我正在尝试编码。我会回来,不管好不好。 – user656760 2011-03-13 02:38:29

+0

我收到错误 “字符串类型的值不能转化array.sort.mydata” myArray的(0)= “pdtId” myArray的(1)= “名优产品” myArray的(2)= “的categoryId” myArray的( 3)= “URL” myArray的(4)= “theDate” myArray的(5)= “pdtId” myArray的(6)= “名优产品” myArray的(7)= “的categoryId” myArray的(8)=“ url“ myArray(9)=”theDate“ – user656760 2011-03-13 02:41:45

+0

请帮助我更多'代码填充数组'部分。我真的很新鲜。对不起。 – user656760 2011-03-13 03:17:04