Что такое метод/синтаксис С# для преобразования массива в простую строку?

То, что я ищу, является базовым эквивалентом 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);