То, что я ищу, является базовым эквивалентом JavaScript Array::join()
, посредством которого вы передаете символ разделителя и используете его в своей возвращаемой строке всех индексов. Я мог бы, конечно, написать свою собственную функцию с помощью StringBuilder
или еще чего-то, но в .NET BCL должно быть что-то встроенное.
EDIT: массив любого, не обязательно string
или char
. Я бы предпочел, чтобы метод просто вызывал ToString()
для каждого индекса object
. String.Join()
отлично, за исключением того, что вы передаете ему массив строк.
Ответ 1
Если массив содержит строки, вы можете просто использовать String.Join()
. Если массив не содержит строк, вам понадобится нечто более сложное, поэтому вы можете обрабатывать процесс трансляции или преобразования для каждого содержащегося в нем элемента.
Обновление: Использование кода @JaredPar в качестве основы для более общего примера:
char sep = GetSeparatorChar();
object[] toJoin = GetToJoin();
string joined = toJoin.Aggregate((x,y) => x.ToString()+sep.ToString()+y.ToString());
Очевидно, что вы могли бы сделать все, что захотите, в этом примере, чтобы получить строку, которая вам нужна.
Ответ 2
Если String.Join не делает этого для вас - например, у вас есть IEnumerable<string>
вместо string[]
или у вас есть коллекция другого типа, см. этот более ранний вопрос.
Ответ 3
Непонятно, присоединяетесь ли вы к массиву символов или строк.
Для строк
char sep = GetSeparatorChar();
string[] toJoin = GetToJoin();
string joined = toJoin.Aggregate((x,y) => x+sep.ToString()+y);