Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/276.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# C语言中任意大小的字符串数组#_C#_Arrays_String - Fatal编程技术网

C# C语言中任意大小的字符串数组#

C# C语言中任意大小的字符串数组#,c#,arrays,string,C#,Arrays,String,我想定义一个字符串数组,但我不知道需要在其中存储多少字符串。我可以定义这样一个数组吗?我如何向其中插入字符串?您可以使用列表,它将随着您向其中添加项目而展开 List<string> myList = new List<string>(); myList.Add("string1"); myList.Add("string2"); 如果您不知道需要的项目的确切数量,那么数组可能不是一个好的选择,因为您需要调整它的大小(这是一个昂贵的操作)。我将使用List类。您可以根据

我想定义一个字符串数组,但我不知道需要在其中存储多少字符串。我可以定义这样一个数组吗?我如何向其中插入字符串?

您可以使用
列表,它将随着您向其中添加项目而展开

List<string> myList = new List<string>();
myList.Add("string1");
myList.Add("string2");

如果您不知道需要的项目的确切数量,那么数组可能不是一个好的选择,因为您需要调整它的大小(这是一个昂贵的操作)。

我将使用List类。您可以根据需要添加任意数量的内容,而无需知道要在其中添加多少内容。如果您确实知道列表中会有多少,可以使用
list
的构造函数的capacity参数来防止性能问题

int capacity = 3;
var listOfNames = List<string>(/* optional */ capacity);
listOfNames.Add("My Name 1");
listOfNames.Add("My Name 2");
listOfNames.Add("My Name 3");

var namesArray = listOfNames.ToArray();
int容量=3;
var listOfNames=列表(/*可选*/容量);
姓名列表。添加(“我的姓名1”);
姓名列表。添加(“我的姓名2”);
姓名列表。添加(“我的姓名3”);
var namesArray=listOfNames.ToArray();
我在那里添加了
namesArray
行,以防出于某种原因确实需要数组而不是列表


查看查看如何使用
列表

更好地使用以下列表:

List<string> names = new List<string>();
names.Add(name); ///whatever string you want to insert
如果您必须使用字符串数组,那么您应该预先知道大小。如果不知道大小,则可以初始化一些默认长度的数组(例如10)。 你必须做的事情是:

  • 保留已添加到数组中的字符串的计数
  • 如果达到默认长度,则必须使用更大的长度(例如15)重新初始化数组,并将所有现有字符串复制到此新数组
  • 您必须检查此数组的边界,不希望从尚未使用的索引中读取(即,如果索引大于count)

因此,最好使用列表,而不是自己完成所有这些工作

您可以使用以下内容,如上面(或下面)提到的Oded,当项目添加到列表中时,它将自动展开

List<String> l = new List<String>();

l.Add("your string here");
…并拥有一个数组:

String[] a =
     l.ToArray();
使用
列表
。例如

var list = new List<string>();
list.Add("string1");
var list=newlist();
列表。添加(“string1”);
如果需要将列表设置为数组,
list
有一个
ToArray()
方法


内部
List
将数据存储为字符串数组。当需要更多空间时,它将分配一个大小为当前数组两倍的新数组,并将所有引用复制到新数组。也就是说,您不必做任何事情,但是如果代码对性能至关重要,那么您可能希望在创建列表时提供默认容量

ArrayList也会起作用

ArrayList alist=新的ArrayList()

增加(第1条);
alist.Add(String2)

+1是最明显的答案,尽管您应该添加如何添加项目,因为Gold明确要求:)@OregonGhost-Waaay在您前面;)
foreach(string i in l)
{
   // Do something with each item (i);
}
String[] a =
     l.ToArray();
var list = new List<string>();
list.Add("string1");