Как переместить целочисленные значения в два разных новых массива?
Привет,
У меня есть пять (5) различных массивов с целочисленными значениями следующим образом:
Dim group1 As Integer = {10, 12, 21} Dim group2 As Integer = {31, 32, 33} Dim group3 As Integer = {11, 12, 13} Dim group4 As Integer = {43, 51} Dim group5 As Integer = {11, 65}
Теперь вышеприведенные значения являются динамическими для каждой записи, связанной с одним человеком, но моя база данных содержит тысячи людей.
Правила:
1. в первом массиве group1 я переношу все значения в другой новый массив, назовем его CombinedArray, так что у меня будет {10, 12, 21}.
2. во втором массиве group2 я перемещаю только первые два самых высоких значения в один и тот же CombinedArray, так что теперь у меня будет {10, 12, 21, 33, 32}, наименьшее значение {31} перемещается в другой новый массив, назовем его AllArrays {31}
3. в третьем массиве group3 я сортирую и беру только 1 самый высокий массив и перемещаю его в CombinedArray, чтобы он стал {10, 12, 21, 33, 32, 13}. Остальные значения из этого массива перемещаются в AllArrays {31, 11, 12}
4. Затем я перемещаю все значения в массиве group4 и массиве group5 в AllArrays, чтобы они теперь выглядели как {31, 11, 12, 43, 51, 11, 65}. Примените сортировку к этой группе и возьмите только 1 самое высокое значение; (65) и переместите его в CombinedArray, чтобы получить {10, 12, 21, 33, 32, 13, 65}.
5. Перебрать и просуммировать значения этого CombinedArray. Вот и все.
Я новичок в VB и массивах. Может ли кто-нибудь там помочь.
Спасибо.
Что я уже пробовал:
Я могу сортировать по убыванию это как показано ниже;
Sort array in descending order: Private Sub Button8_Click(sender As Object, e As EventArgs) Handles Button8.Click Dim array() As Integer = {3, 5, 200, 1} Dim maxPos As Integer Dim firstI As Integer While firstI <= UBound(array) For i = firstI To UBound(array) If array(i) > array(maxPos) Then maxPos = i End If Next Dim largestNumber As Integer = array(maxPos) array(maxPos) = array(firstI) array(firstI) = largestNumber firstI = firstI + 1 maxPos = firstI 'Console.WriteLine(largestNumber) MessageBox.Show(largestNumber) ListBoxNumbers.Items.Add(largestNumber) End While End Sub