C# C语言中的动态数组#
在C#中是否有创建动态数组的方法 看一看。C# C语言中的动态数组#,c#,C#,在C#中是否有创建动态数组的方法 看一看。列出强类型的,或者ArrayList如果你有.NET 1.1或者喜欢强制转换变量。用代码示例扩展Chris和Migol的答案 使用数组 Student[] array = new Student[2]; array[0] = new Student("bob"); array[1] = new Student("joe"); 使用通用列表。在后台,List类使用数组进行存储,但这样做的方式允许它高效地增长 List<Student> lis
列出强类型的,或者ArrayList
如果你有.NET 1.1或者喜欢强制转换变量。用代码示例扩展Chris和Migol的答案
使用数组
Student[] array = new Student[2];
array[0] = new Student("bob");
array[1] = new Student("joe");
使用通用列表。在后台,List类使用数组进行存储,但这样做的方式允许它高效地增长
List<Student> list = new List<Student>();
list.Add(new Student("bob"));
list.Add(new Student("joe"));
Student joe = list[1];
List List=新列表();
列表。添加(新学生(“bob”);
添加(新学生(“乔”);
学生乔=名单[1];
有时,普通数组比通用列表更为方便(对于昂贵的计算,例如数值代数应用程序,或与R或Matlab等统计软件交换数据,性能更好)
在这种情况下,可以在动态启动列表后使用ToArray()方法
List<string> list = new List<string>();
list.Add("one");
list.Add("two");
list.Add("three");
string[] array = list.ToArray();
List List=新列表();
列表。添加(“一”);
列表。添加(“两个”);
列表。添加(“三”);
string[]数组=list.ToArray();
当然,只有当数组的大小事先不知道或固定时,这才有意义。
如果您已经知道程序中某个点的数组大小,那么最好将其作为固定长度数组启动。(例如,如果从结果集检索数据,可以计算其大小并动态启动该大小的数组)使用实际实现数组的数组列表。它最初采用大小为4的数组,当数组满时,将创建一个大小加倍的新数组,并将第一个数组的数据复制到第二个数组中,现在将新项插入到新数组中。
另外,第二个数组的名称会创建第一个数组的别名,以便可以使用与前一个数组相同的名称访问它,并且第一个数组将被释放这个答案似乎就是您要寻找的答案
请阅读此处的ExpandoObject
这里的动态
类型动态数组示例:
Console.WriteLine("Define Array Size? ");
int number = Convert.ToInt32(Console.ReadLine());
Console.WriteLine("Enter numbers:\n");
int[] arr = new int[number];
for (int i = 0; i < number; i++)
{
arr[i] = Convert.ToInt32(Console.ReadLine());
}
for (int i = 0; i < arr.Length; i++ )
{
Console.WriteLine("Array Index: "+i + " AND Array Item: " + arr[i].ToString());
}
Console.ReadKey();
Console.WriteLine(“定义数组大小?”);
int number=Convert.ToInt32(Console.ReadLine());
Console.WriteLine(“输入数字:\n”);
int[]arr=新的int[编号];
for(int i=0;i
您可以使用动态对象执行此操作:
var dynamicKeyValueArray = new[] { new {Key = "K1", Value = 10}, new {Key = "K2", Value = 5} };
foreach(var keyvalue in dynamicKeyValueArray)
{
Console.Log(keyvalue.Key);
Console.Log(keyvalue.Value);
}
您可以使用集合类中的arraylist对象
using System.Collections;
static void Main()
{
ArrayList arr = new ArrayList();
}
如果要添加元素,可以使用
arr.Add();
这个例子有一半不好,因为我们都谈到了ArrayList。这个答案比你的@Migol要好,因为它展示了如何实际使用列表,而不仅仅是将其作为关键字提及。“一半坏”->“一半好”->“好”不值得,只要你使用indexer。Arary并不更方便(它们提供列表接口的子集),并且提供几乎相同的性能,因为列表下面使用规则数组。6000000个元素的迭代:List/for:1971ms数组/for:1864ms(基准自)如果必须将数组传递给接口,那么它必须是数组。在传递列表之前,构建列表并将其放入数组要容易得多。我比其他人更喜欢这个答案,因为它解决了这个问题!这个问题(虽然简短且不具描述性)并不是问一般列表-问题可能是问dynamic[]
(动态类型数组)或ExpandoObject
我可以-1没有提及的答案these@LukeTO“Brien,动力学是在C#4.0中引入的,这是在最初提出这个问题整整一年后发布的。OP可能是在询问一个可调整大小的数据结构,比如只包含文章链接的答案是没有帮助的。无法保证链接将保持活动状态。@JamEngulfer这是不真实的。如果他的链接文本是“看看这个”和“这个”链接,我同意你的看法。如果你删除了链接,看看剩下的内容,OP对“查看通用列表”的回答是大量的信息,可以让未来的读者在谷歌上搜索……如果你仍然陷在旧泥潭中,用[]代替If List,你可以使用Array.Resize()。这是一个很好的例子。链接dotnetperls.com/array-resize无效。(供参考)为什么不使用该列表?