Конкатенация строк не будет работать с использованием моего класса

Я пытаюсь объединить два свойства в одну строку следующим образом:

public class thing 
    public property word() as string()
    public property count() as integer()
end class

Public class myApp
    dim a_thing as new thing
    redim a_thing.word(upperBnd)
    redim a_thing.count(upperBnd)

    'I go on to fill the a_thing.word and .count arrays
    'Then I try to display the results...but it doesnt work.
    for i=0 to a_thing.word.length-1
        debug.writeline("Word: " & a_thing.word(i) & "  Count: " & a_thing.count(i))
    next
end class

Оператор for просто отображает:

Word: [the_word_in_the_array] Word: [the_word_in_the_next_index] ...etc,         

без новых строк...

Если я превращу это в два оператора debug.writeline, я получу:

Word: [the_word_in_the_array] Count: [the_count_in_the_array]

Это то, что я хочу, но это не помогает в выводе отладки... Мне нужно поместить его в одну строку. Я пробовал использовать a_thing.count(i).tostring, но это не работает. Если я посмотрю на массивы по отдельности, у них будет именно то содержимое, которое мне нужно. Но я не могу их объединить. Что тут происходит? Это как-то связано с подавлением новой строки, которую обычно создает debug.writeline?


person loamobn    schedule 14.06.2012    source источник
comment
Как вы смотрели на StringBuilder?   -  person the_lotus    schedule 14.06.2012


Ответы (1)


Проверьте, есть ли нулевые символы в конце слов в массиве Word. Это приведет к поведению, которое вы видите

person Michael Rodrigues    schedule 14.06.2012
comment
Да, но я хочу, чтобы они оба были на одной линии. Однако, когда я помещаю их оба в одну строку, все после a_thing.word(i) не появляется (Count: & a_thing.count(i) не отображается). - person loamobn; 14.06.2012
comment
Итак, содержимое массива Word содержит символы новой строки, и вы хотите удалить их, потому что они вызывают нежелательное поведение? - person Michael Rodrigues; 14.06.2012
comment
Я не думаю, что массивы содержат символы новой строки. Если бы они это сделали, я бы все равно ожидал увидеть Count: [a_thing.count(i)] после Word: [a_thing.count(i), по крайней мере, на строке ниже, но я этого не вижу. Кроме того, если бы были новые строки, я бы не получал весь вывод отладки в одной строке. - person loamobn; 14.06.2012
comment
Проверьте, нет ли в конце ваших слов нулевых символов. Это может вызвать поведение, подобное тому, что вы видите. - person Michael Rodrigues; 15.06.2012
comment
здесь: будет ли это работать: если a_thing.word(i).chars(a_thing.word(i).length-1)=chr(0), то вернуть a_thing.word(i) минус последний символ? - person loamobn; 15.06.2012
comment
Это сработало: нулевые символы вызывали проблемы. Спасибо за предложение. - person loamobn; 15.06.2012
comment
Прохладный! Рад, что это сработало. Я обновил ответ, чтобы отразить проблему, с которой вы столкнулись. Не забудьте принять ответ! - person Michael Rodrigues; 18.06.2012
comment
Просто нажмите на пустую зеленую галочку под кнопками голосования слева от вопроса. - person Michael Rodrigues; 18.06.2012