使用 将字符串列表转换为数组.ToArray()

本文关键字:数组 ToArray 转换 字符串 列表 使用 | 更新日期: 2023-09-27 17:55:20

使用 .ToArray() 函数时,是否有必要隐式定义数组的大小以保存要转换的列表中的字符?

String [] array = List.ToArray();

我尝试这样做是因为我需要使用数组的.GetValue()能力,但是,数组保持 1 的大小并且不保留列表中的材料。我是否尝试错误地使用.ToArray()

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

这是我拥有的所有影响数组的代码。当我Console.WriteLine()列表时,它给了我整个文本。我可能对列表的工作原理感到困惑。它是否将所有内容存储为单个项目,这就是为什么数组只显示一个位置的原因?

使用 将字符串列表转换为数组.ToArray()

您无需将其转换为数组即可取出特定字符。

只需使用text[index]即可获得所需的字符。

如果您确实需要它作为数组,请使用 String.ToCharArray() - 您想要一个char数组而不是string数组。

编辑:

它是否将所有内容存储为单个项目,这就是为什么数组只显示一个位置的原因?

是的

,是的。您正在制作一个包含string string的列表:text的全部内容 - 您似乎想要的是将其逐个字母拆分,这就是上述方法将实现的目标。

它应该可以正常工作,但请尝试使用var运算符来确定。

var array = List.ToArray();

是否有理由使用 Array.GetValue 而不是List<T>本身的内置函数例如:

 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(或类似),这确实应该将你的 List 转换为数组。

请注意,创建此数组后,将元素添加到列表不会同时将其添加到数组中