2015-06-18 2 views
0

Я разделил 1d-массив и мне нужно преобразовать его в массив 2d. Массив состоит из чисел (оценок) и имен в качестве результатов численного теста.1D Array в 2D-массив (vb)

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

Что именно вы хотите достичь. Вы хотите преобразовать 1D в 2D. Является ли это матрицей NxN и т. Д. Пожалуйста, будьте конкретны. – Cyclotron3x3

+0

Я не очень продвинутый в программировании, мой 1d arry имеет имя в ячейке, затем зачисляет в ячейку два и так далее, im пытается получить его в массив 2d, поэтому оценка под именем в массиве, если вы знаете, что я имею в виду –

ответ

0

Преобразование 1D в 2D возможно, если у вас есть условный ключ/значение, чтобы сделать его индексом массива, но в вашем случае это не так. Поэтому лучшим вариантом будет использование HashMap/HashTable в целом. В соответствии с вашим требованием вместо использования 2D-массива для представления пары name: value вы должны использовать HashMap.

Согласно выписке в commnets у вас есть массив 1D который содержит имя: значение

т.е.

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); 

Теперь вы можете легко манипулировать любое имя: значение пары

например Для того, чтобы получить знаки забил «мат» просто написать hm.get("mat")

Он будет выводить знаки, связанные с ковриком т.е. 45.

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.

Смежные вопросы