在vb.net中我有一个值数组,如下所示
arr(0) = "US,20,10,true"
arr(1) = "Ind,22,8,true"
arr(2) = "UK,40,6,true"
arr(3) = "Chi,30,22,true"
arr(4) = "Jpn,50,18,true"
arr(5) = "Isr,18,15,true"
我现在想要实现的是按照每个元素中第3个值的升序对此数组进行排序(即,根据值10,8,6,22,18和15对整个数组进行排序)。排序后我应该得到如下给出的数组
arr(0) ="UK,40,6,true"
arr(1) ="Ind,22,8,true"
arr(2) ="US,20,10,true"
arr(3) ="Isr,18,15,true"
arr(4) ="Jpn,50,18,true"
arr(5) ="Chi,30,22,true"
有人能为我提供代码吗?
谢谢, KDR
答案 0 :(得分:2)
输入:
if(Condition){
Code...
}
输出:
Dim arr(5) As String
arr(0) = "US,20,10,true"
arr(1) = "Ind,22,8,true"
arr(2) = "UK,40,6,true"
arr(3) = "Chi,30,22,true"
arr(4) = "Jpn,50,18,true"
arr(5) = "Isr,18,15,true"
arr = arr.Cast(Of String).Select(Function(a) a.Split(","c)).
Select(Function(a) New With {Key .State = a(0),
Key .No1 = a(1),
Key .No2 = a(2),
Key .Bool = a(3)}).
OrderBy(Function(o) CInt(o.No2)).
Select(Function(s) String.Concat(s.State, ",", s.No1, ",", s.No2, ",", s.Bool)).ToArray()
For Each item In arr
Console.WriteLine(item)
Next
UK,40,6,true
Ind,22,8,true
US,20,10,true
Isr,18,15,true
Jpn,50,18,true
Chi,30,22,true
答案 1 :(得分:0)
为什么你不使用DataTable?
Dim Table1 As New DataTable
' Create four typed columns in the DataTable.
Table1.Columns.Add("Country", GetType(String))
Table1.Columns.Add("Num1", GetType(Integer))
Table1.Columns.Add("Num2", GetType(Integer))
Table1.Columns.Add("Bol", GetType(Boolean))
' Add some rows in the DataTable.
Table1.Rows.Add("IT", "123", "456", True)
Table1.Rows.Add("DE", "456", "789", False)