当前位置:  开发笔记 > 编程语言 > 正文

C#中未知长度的数组

如何解决《C#中未知长度的数组》经验,为你挑选了4个好方法。

我刚刚开始学习C#,在数组的介绍中,他们展示了如何将变量建立为数组,但似乎必须在赋值时指定数组的长度,那么如果我不知道数组的长度呢?阵列?



1> Samuel..:

必须为数组指定长度.要允许任意数量的元素,请使用List该类.

例如:

List myInts = new List();
myInts.Add(5);
myInts.Add(10);
myInts.Add(11);
myInts.Count // = 3


如果是二维怎么办?
List <int []> myInts = new List <int []>();`可以工作。

2> TFD..:

使用List<>建立一个未知的长度的"数组".

使用List<>.ToArray()返回真正的数组,而不是一个List.

var list = new List();
list.Add(1);
list.Add(2);
list.Add(3);
var array = list.ToArray();


使用System.Collections.Generic;

3> JulianR..:

一点背景资料:

如上所述,如果你想拥有一个动态的东西集合,请使用List.在内部,List也使用数组进行存储.该数组具有固定大小,就像任何其他数组一样.一旦数组被声明为具有大小,它就不会改变.将项添加到a时List,会将其添加到数组中.最初,我List开始使用一个我认为长度为16的数组.当你尝试添加第17个项目时List,会发生什么是分配一个新数组,这是(我认为)两倍于旧数组的大小. ,所以32项.然后将旧数组的内容复制到新数组中.因此,虽然a List对于外部观察者来说可能看起来很动态,但在内部它也必须遵守规则.

正如您可能已经猜到的那样,数组的复制和分配并不是免费的,因此应该尽可能少地使用这些List数组,并且可以指定(在构造函数中)数组的初始大小,在一个完美的场景中,它足以容纳你想要的一切.然而,这是微观优化,它不太可能对你有用,但知道你实际在做什么总是很好.


在做什么总是很好.

4> mqp..:

您可以创建一个大小设置为变量的数组,即

int size = 50;
string[] words = new string[size]; // contains 50 strings

但是,如果您决定需要100个单词,那么这个大小以后就无法改变.如果您需要大小非常动态,则需要使用不同类型的数据结构.试试List.

推荐阅读
mobiledu2402851203
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有