代码之家  ›  专栏  ›  技术社区  ›  GilliVilla

.NET中的数组是否失去了意义?

  •  28
  • GilliVilla  · 技术社区  · 14 年前

    对于每一种需要使用数组的情况。。。有一个很棒的收集与好处。对于.NET中的数组还有什么特定的用例吗?

    13 回复  |  直到 14 年前
        1
  •  34
  •   Femaref    14 年前

    发送/接收特定长度的数据,即串口、Web请求、FTP请求。基本上是在系统的较低层次上工作的东西。此外,大多数集合都使用数组进行存储(值得注意的例外: LinkedList<T> ). 集合只是另一个抽象层。

        2
  •  6
  •   Christopher Tarquini    14 年前

    数组很有用,因为它们在内存中总是线性的,而且处理起来很快。例如,我可以 byte[] 直接编入一个结构,除了一个 List<T>

        3
  •  5
  •   Kelsey    14 年前

    不,他们仍然有他们的用途,应该一直考虑。

    请记住数组是固定长度的非常基本的表示形式,因此它们非常快,大多数语言根据数组中使用的类型来理解它们。

    列表和其他类型很有用,因为它们可以做很多事情,但有时并不需要所有额外的开销,所以只需要一个数组。

    这就像开4x4,因为你认为有一天你可能需要越野,即使有99.9%的机会你会在正常道路上。数组将是基本的汽车和列表,例如将是一个4x4。。。它做了汽车所能做的一切(引擎盖下的汽车可能会使用大部分相同的部件),但以汽油、成本为代价,可能不适合某些停车位等。。。

    数组=性能和兼容性

        4
  •  5
  •   Daniel Vassallo    14 年前

    是的,当然还有数组的用途。有些方法仍然需要数组。

    例如:

    string[] items = "a,b;c:d".Split(new char[]{',',';',':'});
    

    它仍然是保存一堆项目的最简单方法,并且是第一选择,直到您需要一些特定的功能,例如动态增长。

        5
  •  4
  •   Henk Holterman    14 年前

    对。对于许多需要“表”项的任务,现在有了更灵活、更有用的解决方案,如 List<> IEnumerable<>

    阵列是否失去了它们的重要性?

    不。它们是最快的存储形式,在大多数收藏类别中都是“隐藏”使用,系统字符串等。

    因此,数组变得更低级,应用程序程序员将使用它们 不太经常。

        6
  •  3
  •   Donal Fellows    14 年前

    除此之外,你提到的许多优秀的收藏课程 使用数组实现 . 您可能没有显式地使用它们,但是您正在使用大量的它们,并且您的程序更适合它。这意味着 必须 使用该语言(或者直接使用大量本机代码实现集合,这会更糟糕)。

        7
  •  2
  •   Dan Tao    14 年前

    List<T> , Queue<T>

        8
  •  2
  •   bufferz    14 年前

    我每天处理数组的两种情况:

    • 图像分析。图像几乎总是byte[]或int[]数组。
        9
  •  1
  •   Mike    14 年前

    这是一个公平的问题,但答案肯定是它们仍然有用。速度是一个原因,固定尺寸的简单性是另一个原因。但我认为最重要的是灵活性。它为您设计自己的收藏提供了一个很好的基础,如果您需要的话,还提供了一个简单的数组作为支持。

        10
  •  1
  •   TalentTuner    14 年前

    不,数组不会失去它的重要性。

    2-在图论中,当你存储关于顶点之间链接的信息时,你仍然可以使用比链表实现更快的数组来实现。

    3-一些方法,如字符串。拆分返回数组。

        11
  •  1
  •   Lukasz Madon    14 年前

    我使用数组来操纵图像,就像WritableBitmap类中那样。

        12
  •  1
  •   abhishek    14 年前

    有一件事我必须告诉你数组是任何编程语言的构造块。如果您想声明一个包含多个元素的存储,那么数组是您的基本选项。

    比如说一个列表。

    如果你看到列表的定义,它实际上是成立的

    T[]项

    我同意数组有更新或删除的限制,如果你主要强调的是存储而不是速度,你可以选择链表。

        13
  •  1
  •   FlySwat    14 年前