int[]和list<int>之间的区别

4

什么是以下概念之间的区别:

    int[] myIntArray

并且。
 list<int> myIntArray

在Web服务中,我读到应该选择其中一种而不是混合使用,为什么?
5个回答

7
在传输过程中,它们将无法区分 - 即Customer[]List<Customer>看起来(大致)相同:
<Customers>
   <Customer name="Fred" ... />
   <Customer name="Barney" ... />
</Customers>

因此,没有必要使用不同的逻辑来处理这两种情况。最终,int[] 不易于操作(例如 Add 等),所以我倾向于使用 List<T> - 当然,如果我没记错,wsdl.exe 会很好地默认为数组 - 但是有一个命令行开关(或者可能是针对 wse/wcf 的)。


3

这取决于您将用它们做什么。

如果您的数据集大小固定且不需要进行任何排序,则数组更适合。

如果您的数据需要更加动态,需要进行排序,并能够利用LINQ,则使用列表。

个人而言,我更喜欢列表类型的灵活性。


如果你想对数组进行排序,可以使用Array.Sort静态方法。LINQ与此几乎没有关系,因为数组也是IEnumerable。可调整大小基本上是唯一需要考虑的。 - Joren
@Joren 是的,Array.Sort 存在,但是它在底层是如何进行排序的呢?由于它在内存中的存储方式,它不可能像对列表进行排序那样高效。 - Chris Ballance
什么?你知道List使用数组作为后备存储。排序方法可能几乎相同。 - Joren
1
我用Reflector快速查看了一下,List.Sort实际上是调用Array.Sort来完成它的工作的。 - Joren

2

它们基本上是相同的,除了列表具有许多内置函数来方便程序员的使用。一旦您开始使用列表,您会喜欢它们:D

此外,数组是固定的。您不能(轻松地)更改数组的大小。


1

它们在功能上是等效的,因此您可以使用任何一个。一旦您使用了一个版本,请保持一致。这将有助于保持您的代码可读性和易于维护。


0

int[] 是一个整数数组。List 是一个通用列表,它保存 int 类型的对象。

你选择哪个取决于你的需求。如果你处理的是不可变的对象集合,int[] 更适合。然而,如果你需要修改集合的内容,List 提供了这种灵活性。


1
允许您修改内容与否不是数组和“List”之间的差异。两者都可以让您修改。但是,数组不允许您修改项目数量。 - Joren

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接