Спасибо за все ответы.
Похоже, что "правильный" ответ зависит от контекста, в котором создается разделенный запятыми список. У меня нет аккуратного списка элементов для использования (пришлось что-то использовать для примера ...), но у меня есть массив, элементы которого могут или не могут быть добавлены в список через запятую в зависимости от различных условий.
Поэтому я выбрал что-то с эффектом
strResult = ""
strSeparator = ""
for i as integer = 0 to arrItems.Length - 1
if arrItems(i) <> "test" and arrItems(i) <> "point" then
strResult = strResult & strSeparator & arrItem(i)
strSeparator = ", "
end if
next
Как обычно, существует множество способов сделать это. Я не знаю, что какой-либо один метод заслуживает большей похвалы или продвижения, чем другой. Некоторые из них более полезны в определенных контекстах, в то время как другие удовлетворяют требованиям различных контекстов.
Опять же, спасибо всем за ваш вклад.
Кстати, исходное сообщение с примером кода «с головы до головы» не фильтрует элементы нулевой длины, вместо этого оно ожидает, пока результирующая строка станет больше нулевой длины, прежде чем добавлять запятую. Возможно, не очень эффективно, но я не проверял это. Опять же, это было с моей головы.