我已经拆分了1d数组,我需要将其转换为2d数组。该数组由数字(分数)和名称组成,作为数值测试的结果。
Dim results1 As String = File.ReadAllText("Z:\scores class 1.txt")
Dim array = Split(results1, " ")
For i As Integer = 0 To array.Length - 1
Console.WriteLine(array(i))
Next
Console.WriteLine("Would you like these to be sorted? Press 1 for yes, 2 for no")
If Console.ReadLine = 1 Then
' do some stuff
ElseIf Console.ReadLine = 2 Then
' do some stuff
End If
Console.ReadLine()
这是我目前的代码,我需要添加什么? 谢谢你的帮助。
答案 0 :(得分:0)
当你有一个有条件的键/值使它成为数组的索引时,可以将1D转换为2D,但在你的情况下它不是。因此,更好的选择是使用HashMap / HashTable。根据您的要求,您应该使用HashMap。
,而不是使用2D数组来表示名称:值对根据您在commnets中的语句,您有一个包含name:value的一维数组 即
String arr [] = { "jack", "23", "mat","45", "mike","56" }
您可以更好地将其表示为HashMap。
HashMap<String,Integer> hm = new HashMap<String,Integer>();
hm.add("jack",23); // it will add score of 23 to name jack i.e "jack" : 23
hm.add("mat",45);
hm.add("mike",56);
现在您可以轻松操作任何名称:值对
e.g。要获得“mat”得分,请写下 hm.get("mat")
它将输出与mat相关的标记,即 45。
答案 1 :(得分:0)
Dim array2((array.Length / 2) - 1, 1) As String
For i As Integer = 0 To (array.Length - 1) / 2 Step 1
array2(i, 0) = array(i * 2)
array2(i, 1) = array((i + 1) * 2 - 1)
Next
这将创建一个二维数组,其中包含1d数组的值。