C#和数据结构,您是否需要自己编写?

时间:2011-07-03 16:02:25

标签: c# data-structures

我正在阅读一本算法书,介绍字符串,数组,字典,队列,堆栈等基本结构,以及排序算法等。

鉴于C#的数据结构,您是否需要从头开始构建自己的结构,或者创建自己的二进制搜索或者内置的任何内容?

4 个答案:

答案 0 :(得分:4)

.NET框架仅包含常见数据结构和算法的基线,但未涵盖(也未尝试涵盖)所有内容

所以是的,您肯定必须编写自己的数据结构,尝试和优先级队列,例如马上想到。在许多情况下,开源项目涵盖了广泛的算法和数据结构,因此不需要重新发明轮子,但总是需要更专业的实现和各个项目的不同优化。

答案 1 :(得分:2)

正如@BrokenGlass所说,.Net框架提供了许多基线数据结构。这是您的基本工具箱。开源项目是了解有关扩展和扩展这些工具的更多信息的好方法。因此,通常不需要重新发明轮子

为了避免不必要地编写自己的数据结构,最好问一下,“是否有一些库应该符合我的要求:x,y,z?

那就是说,我不会阻止你在你看到需要的时候编写自己的数据结构 - 事实上,从学术角度来看,我鼓励它。这种经验将为您提供所需的知识:

  1. 修改现有数据结构以满足您的需求
  2. 了解现有数据结构何时不符合您的需求

答案 2 :(得分:0)

.NET缺少许多常见的数据结构,这些数据结构位于其他语言的更全面的库中(例如C ++标准模板库)。

我过去曾使用过C5和Wintellect的Power Collections。在这两个中,我更喜欢C5用于收藏,而Wintellect用于算法。

答案 3 :(得分:-4)

啊;)阅读本书到最后;).NET标准类没有涵盖的大量边缘案例。