Заполнить массив недостающими значениями - 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)

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

5   голосов , оценка 3.6 из 5
Похожие ответы