使用.ToArray()
函数时,是否需要隐式定义数组的大小以保存您要转换的列表中的字符?
String [] array = List.ToArray();
我尝试这样做是因为我需要使用数组的.GetValue()
能力,但是,数组保持大小为1而不保留列表中的材质。我是否尝试错误地使用.ToArray()
?
colAndDelimiter = new List<string>();
colAndDelimiter.Add(text);
String [] cd = colAndDelimiter.ToArray();
这是影响数组的所有代码。当我Console.WriteLine()
列表时,它为我提供了整个文本。我可能会对列表如何工作感到困惑。它是否将所有内容存储为单个项目,这就是为什么数组只显示一个位置?
答案 0 :(得分:5)
您无需将其转换为数组即可获取特定字符。
只需使用text[index]
即可获得所需的角色。
如果您确实需要它作为数组,请使用String.ToCharArray()
- 您希望数组char
不是string
数组。
编辑:
它是否将所有内容存储为单个项目,这就是为什么数组只显示一个位置?
是的,是的。您正在列出包含string
的{{1}}个string
:text
的全部内容 - 您想要的是将其逐字拆分,这就是以上方法将实现。
答案 1 :(得分:2)
它应该可以正常工作,但请确保var
运算符确定。
var array = List.ToArray();
是否有理由使用Array.GetValue
代替List<T>
本身的内置函数
EG:
string value = List.ElementAt(1);
var values = List.GetRange(0, 5);
答案 2 :(得分:1)
你做的很好......但是我们说你不确定它的大小
string[] cd
然后您可以执行以下操作
var colAndDelimiter = new List<string>();
colAndDelimiter.Add(text);
String[] cd = { };
cd = colAndDelimiter.ToArray();
在cd中找到数据的位置 string value = cd [0];
更新:
如果您想根据存储在一行中的值执行此操作,则可以执行此操作,而无需将cd
变量声明为string[] cd;
var colAndDelimiter = new List<string>();
colAndDelimiter.Add("Hello, World, Week, Tuesday");
var cd = colAndDelimiter[0].Split(',');
答案 3 :(得分:0)
只要您的List
对象是包含其中项目的IEnumerable(或类似对象),这确实应该将您的List转换为数组。
请注意,创建此数组后,向List添加元素也不会将其添加到数组