Я нашел несколько похожих вопросов, но ни один из них не попал в то, что я искал. Допустим, у меня есть массив из 10 значений для фруктов:VB.net - группировка идентичных значений, затем обработка результата
fruit(1) = "apple"
fruit(2) = "orange"
fruit(3) = "banana"
fruit(4) = "cherry"
fruit(5) = "peach"
fruit(6) = ""
fruit(7) = ""
fruit(8) = ""
fruit(9) = ""
fruit(10) = ""
теперь у меня есть заявление, в котором говорится, что фрукты (6) = «яблоко», что делает массив:
fruit(1) = "apple"
fruit(2) = "orange"
fruit(3) = "banana"
fruit(4) = "cherry"
fruit(5) = "peach"
fruit(6) = "apple"
fruit(7) = ""
fruit(8) = ""
fruit(9) = ""
fruit(10) = ""
Я хочу иметь суб, который будет группировать подобные предметы и хранить его только один раз. Итак,
fruit(1) = "2 x apple"
fruit(2) = "orange"
fruit(3) = "banana"
fruit(4) = "cherry"
fruit(5) = "peach"
fruit(6) = ""
fruit(7) = ""
fruit(8) = ""
fruit(9) = ""
fruit(10) = ""
, а затем в следующий раз, когда я добавлю яблоко, оно переходит в «3 x яблоко» и так далее.
так в псевдо-код я хочу его
look for duplicate values
count how many duplicates
alter the original item
delete all but the newly altered entry
, что это самый простой и самый элегантный способ сделать это в vb.net? есть ли способ сделать это без LINQ?
Вы можете использовать словарь (Of String, Integer) где ключ фрукты и значение это счет. Просто проверьте, существует ли ключ, если да, то увеличивайте счет. Кстати, массивы начинаются с индекса 0 не 1. –
@the_lotus Вы можете уйти с индексированием массивов в 1 или 0 с помощью VB.NET, в зависимости от того, как вы объявляете массив - если вы «Dim fruit (10) As Integer 'вы получите массив, который идет от' fruit (0) 'to' fruit (10) ', вероятно, лучше всего быть совместимым с остальной частью .NET. –