Преобразование строки в массив без использования функции Split - PullRequest
15 голосов
/ 08 января 2010

Есть ли способ преобразовать строку ("abcdef") в массив строк, содержащий ее символ (["a","b","c","d","e","f"]), без использования функции String.Split?

Ответы [ 5 ]

37 голосов
/ 08 января 2010

Итак, вам нужен массив string, по одному char каждый:

string s = "abcdef";
string[] a = s.Select(c => c.ToString()).ToArray();

Это работает, потому что string реализует IEnumerable<char>. Поэтому Select(c => c.ToString()) проецирует каждый char в string на string, представляющий, что char и ToArray перечисляют проекцию и преобразует результат в массив string.

Если вы используете старую версию C #:

string s = "abcdef";
string[] a = new string[s.Length];
for(int i = 0; i < s.Length; i++) {
    a[i] = s[i].ToString();
}
9 голосов
/ 08 января 2010

Да.

"abcdef".ToCharArray();
3 голосов
/ 14 сентября 2012

Почему бы тебе просто не

string value="abcd";

value.ToCharArray();

textbox1.Text=Convert.toString(value[0]);

чтобы показать первую букву строки; это будет «а» в этом случае.

3 голосов
/ 08 января 2010

Вы можете использовать linq и сделать:

string value = "abcdef";
string[] letters = value.Select(c => c.ToString()).ToArray();

Это даст вам массив строк вместо массива символов.

0 голосов
/ 20 мая 2010

Немного больше, чем те, что указаны выше, но я не вижу ни одного простого лайнера для этого.

List<string> results = new List<string>; 

foreach(Char c in "abcdef".ToCharArray())
{
   results.add(c.ToString());
}


results.ToArray();  <-- done

Что не так с string.split ???

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...