Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/arrays/13.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_Arraylist - Fatal编程技术网

C# C动态数组/索引

C# C动态数组/索引,c#,arrays,arraylist,C#,Arrays,Arraylist,我在我的c程序中创建了一个字符串[]数组来保存一组元素的位置名称和位置。问题是,每当我必须引入新元素时,我都必须根据元素索引在多个位置更改代码: string[] list = new string[4]; list[0] = "[ELEMENT #1 NAME],[ELEMENT #1POSITION]"; list[1] = "[ELEMENT #2 NAME],[ELEMENT #2POSITION]"; list[2] = "[ELEMENT #3 NAME],[

我在我的c程序中创建了一个字符串[]数组来保存一组元素的位置名称和位置。问题是,每当我必须引入新元素时,我都必须根据元素索引在多个位置更改代码:

   string[] list = new string[4];
   list[0] = "[ELEMENT #1 NAME],[ELEMENT #1POSITION]";
   list[1] = "[ELEMENT #2 NAME],[ELEMENT #2POSITION]";
   list[2] = "[ELEMENT #3 NAME],[ELEMENT #3POSITION]";
   list[3] = "[ELEMENT #4 NAME],[ELEMENT #4POSITION]";
我想要的是一个类似于动态数组的东西,这样我就不必在每次从列表中引入/删除元素时都更改索引位置。

试试看

List<string> list = new List<string>();
list.Add("[ELEMENT #1 NAME],[ELEMENT #1POSITION]")
除非我误解了你的问题,否则这应该是你想要的

List<string> list = new List<string>();
list.Add("[ELEMENT #1 NAME],[ELEMENT #1POSITION]")

除非我误解了你的问题,否则这应该是你想要的

如果你想要一个动态大小的集合,而不需要索引,你可以使用List。您还应该创建一个具有两个属性Name和Position的类型,并具有该类型的列表,而不是将它们存储为字符串。它更易于维护,您不必在每次想要获取/设置特定对象的名称或位置时都解析字符串。

如果您想要动态调整大小的集合,并且不必麻烦索引,则可以使用列表。您还应该创建一个具有两个属性Name和Position的类型,并具有该类型的列表,而不是将它们存储为字符串。它更易于维护,您不必在每次获取/设置特定对象的名称或位置时都解析字符串。

通常,您只需在此处使用列表即可。Add方法允许您只添加一个元素,而不需要索引

List<string> list = new List<string>();
list.Add("Test");

通常,您只需在此处使用列表。Add方法允许您只添加一个元素,而不需要索引

List<string> list = new List<string>();
list.Add("Test");
可以将列表用作动态数组,它支持IEnumerable进行枚举,也可以调用LINQ和ToArray

例如:

var list = new List<string>();

list.Add("[ELEMENT #1 NAME],[ELEMENT #1POSITION]");

string array[] = list.ToArray();
var dict = new Dictionary<string,int>();

dict["Element #1 Name"] = #Element #1 Position#;
可以将列表用作动态数组,它支持IEnumerable进行枚举,也可以调用LINQ和ToArray

例如:

var list = new List<string>();

list.Add("[ELEMENT #1 NAME],[ELEMENT #1POSITION]");

string array[] = list.ToArray();
var dict = new Dictionary<string,int>();

dict["Element #1 Name"] = #Element #1 Position#;

为什么不使用具有属性名称和位置的类,然后使用该类对象的数组或列表。请改用列表。您可以动态构建它,如果需要数组,您可以调用其.ToString方法。元素名称是否唯一?为什么不使用具有属性名称和位置的类,然后使用该类对象的数组或列表。请改用列表。您可以动态构建它,如果您需要数组,您可以调用它的.ToString方法。元素名称是否唯一?感谢Lloyd、BradleyDotNET、Selman22、stakx和fallaciousreasoning,它解决了问题,非常感谢。感谢Lloyd、BradleyDotNET、Selman22、stakx和fallaciousreasoning,它解决了问题,非常感谢。