繁体   English   中英

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

[英]C# and datastructures, do you ever need to write your own?

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

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

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

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

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

为了避免对自己的数据结构进行不必要的编码,最好问一下“是否有一些库可以满足我的要求:x、y、z?

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

  1. 修改现有数据结构以满足您的需求
  2. 知道现有数据结构何时不适合您的需求

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

我过去使用过C5和 Wintellect 的Power Collections 在这两者中,我更喜欢 C5 用于 collections,但 Wintellect 用于算法。

啊;)将本书读到最后;).NET 标准类未涵盖的大量边缘情况。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM