Заполнить массив недостающими значениями - Visual Basic .NET
Формулировка задачи:
Здравствуйте! Ситуация такая, имеется listview, со значениями типа 1,2,3,4,6,7,9
Задача такая:
Нужно из всех имеющихся значений составить массив, а потом перебрать его, начиная от 1 и далее, переменная n должна быть равна
a) пропущенному значению
б) если пропущенных значений нет, то максимальному значению +1
На данный момент я пока работаю по варианту б
Как найти пропущенное значение? К примеру в той последовательности, что я дал 1,2,3,4,6,7,9 , n должно равняться 5.
При следующем заходе 8, а потом уже по варианту б = 10
Все, разобрался, при отображении сортирую listview
далее использую
Решение задачи: «Заполнить массив недостающими значениями»
textual
Листинг программы
' Получаем отсортированный числовой список значений Dim lvItems = From item As ListViewItem In ListView1.Items Select i = Integer.Parse(item.Text) Order By i ' Создаем список пропущенных значений, дополненный увеличенным на один наибольшим значением Dim missedItems = lvItems.Zip(lvItems.Skip(1), Function(x, y) Enumerable.Range(x + 1, y - x - 1)).SelectMany(Function(x) x).Concat(New Integer() {lvItems.Max + 1}) ' Добавляем список в ListView ListView1.Items.AddRange(missedItems.Select(Function(x) New ListViewItem(x.ToString)).ToArray)
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д