【问题标题】:Difference Between int[] and list<int>int[] 和 list<int> 的区别
【发布时间】:2010-12-08 12:12:07
【问题描述】:

有什么区别:

    int[] myIntArray

 list<int> myIntArray

在网络服务中,我读到我应该选择其中一个,而不是混合两者,为什么?

【问题讨论】:

    标签: c# asp.net arrays list


    【解决方案1】:

    在电线上它们将无法区分 - 即 Customer[]List&lt;Customer&gt; 看起来(大致)如下:

    <Customers>
       <Customer name="Fred" ... />
       <Customer name="Barney" ... />
    </Customers>
    

    因此,将两者区别对待的逻辑毫无意义。最终,int[] 使用起来很痛苦(Add 等),所以我倾向于使用List&lt;T&gt; - 当然,wsdl.exe 很好地默认为数组,IIRC - 但是有一个命令行开关(或也许有 wse/wcf)。

    【讨论】:

      【解决方案2】:

      取决于你将如何处理它们。

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

      如果您的数据需要更加动态、允许排序并能够利用 LINQ,那么请使用列表

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

      【讨论】:

      • 如果要对数组进行排序,可以使用Array.Sort 静态方法。 LINQ 也与它无关,因为数组也是IEnumerable。可调整大小基本上是最重要的。
      • @Joren 是的 Array.Sort 存在,但是这种排序是如何在底层发生的?由于它在内存中的存储方式,它不可能像排序列表那样有效。
      • 嗯? List 使用数组作为你知道的后备存储。排序方法可能几乎相同。
      • 我快速浏览了一下 Reflector,List.Sort 实际上调用 Array.Sort 来完成它的工作。
      【解决方案3】:

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

      您选择哪一种取决于您的要求。如果您正在处理不可变的对象集合,则 int[] 会更合适。但是,如果您需要修改集合的内容,List 提供了这种灵活性。

      【讨论】:

      • 是否允许修改内容并不是数组和List的区别。两者都允许您这样做。但是,数组不允许您修改 number 个项目。
      【解决方案4】:

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

      【讨论】:

        【解决方案5】:

        它们几乎相同,除了列表有很多内置函数来简化程序员的生活。一旦你开始使用列表,你就会爱上它们:D

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

        【讨论】:

          猜你喜欢
          • 2015-02-13
          • 2014-01-10
          • 1970-01-01
          • 2017-02-23
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多