Что такое метод / синтаксис C # для преобразования массива в простую строку? - PullRequest
4 голосов
/ 20 октября 2008

То, что я ищу, является базовым эквивалентом JavaScript Array::join(), в котором вы передаете символ-разделитель и используете его в своей возвращаемой строке всех индексов. Я, конечно, мог бы написать свою собственную функцию, используя StringBuilder или еще что-нибудь, но должно быть чем-то встроенным в .NET BCL.

РЕДАКТИРОВАТЬ: Массив что-нибудь , не обязательно string или char. Я бы предпочел, чтобы метод просто вызывал ToString() для каждого индекса object. String.Join() отлично, за исключением того, что вы передаете ему массив строк.

Ответы [ 3 ]

3 голосов
/ 20 октября 2008

Если массив содержит строки, вы можете просто использовать String.Join(). Если массив не содержит строк, вам понадобится что-то более сложное, чтобы вы могли обрабатывать процесс приведения или преобразования для каждого элемента, который он содержит.

Обновление: Использование кода @ JaredPar в качестве основы для более общего примера:

char sep = GetSeparatorChar();
object[] toJoin = GetToJoin();
string joined = toJoin.Aggregate((x,y) => x.ToString()+sep.ToString()+y.ToString());

Очевидно, что в этом примере вы можете сделать все, что захотите, x и y, чтобы строка выглядела так, как вы хотели.

1 голос
/ 20 октября 2008

Если String.Join не делает это за вас - например, у вас IEnumerable<string> вместо string[] или у вас есть коллекция другого типа, см. этот предыдущий вопрос .

0 голосов
/ 20 октября 2008

Мне неясно, присоединяетесь ли вы к массиву символов или строк.

Для строк


char sep = GetSeparatorChar();
string[] toJoin = GetToJoin();
string joined = toJoin.Aggregate((x,y) => x+sep.ToString()+y);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...