Преобразование списка строк в массив с помощью.ToArray()

При использовании .ToArray() Нужно ли неявно определять размер массива для хранения символов, которые были в списке, который вы конвертируете?

String [] array = List.ToArray();

Я пытался сделать это, потому что мне нужно было использовать .GetValue() Способность массива, однако, массив поддерживает размер 1 и не удерживает материал из списка. Я пытаюсь использовать .ToArray() неправильно?

colAndDelimiter = new List<string>();
colAndDelimiter.Add(text);

String [] cd = colAndDelimiter.ToArray();

Это весь мой код, который влияет на массив. Когда я Console.WriteLine() список это дает мне весь текст. Я могу быть смущен тем, как работает список. Хранит ли он все как один элемент, и поэтому массив показывает только одно место?

4 ответа

Вам не нужно преобразовывать его в массив, чтобы получить конкретные символы.

Просто используйте text[index] добраться до нужного персонажа.

Если вам действительно нужно это как массив, используйте String.ToCharArray() - вы хотите массив char не массив string,

Редактировать:

Хранит ли он все как один элемент, и поэтому массив показывает только одно место?

Да да это. Вы делаете список string s, который содержит один string: все содержимое text - кажется, что вы хотите, чтобы разделить его по буквам, чего и добьются вышеуказанные методы.

Это должно работать нормально, но попробуйте var Оператор безусловно.

var array = List.ToArray();

Есть ли причина использовать Array.GetValue вместо встроенных функций List<T> сам EG:

 string value = List.ElementAt(1);
 var values = List.GetRange(0, 5);

То, что вы делаете, хорошо... но давайте скажем, что вы не уверены в размере string[] cd тогда вы можете сделать что-то вроде следующего

var colAndDelimiter = new List<string>();
colAndDelimiter.Add(text);
String[] cd = { }; 
cd =  colAndDelimiter.ToArray();

найти положение данных в строковом значении cd = cd[0];

Обновление: если вы хотите сделать это, основываясь на значениях, хранящихся в одной строке, вы можете сделать это без объявления cd переменная как string[] cd;

var colAndDelimiter = new List<string>();
colAndDelimiter.Add("Hello, World, Week, Tuesday");
var cd = colAndDelimiter[0].Split(',');

Пока ваш List объект - это некий IEnumerable (или аналог), в котором есть элементы, это действительно должно преобразовать ваш список в массив.

Обратите внимание, что после создания этого массива добавление элементов в список также не добавит его в массив

Другие вопросы по тегам