Преобразование списка строк в массив с помощью.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 (или аналог), в котором есть элементы, это действительно должно преобразовать ваш список в массив.
Обратите внимание, что после создания этого массива добавление элементов в список также не добавит его в массив