Tag: 数据结构

将C#数据结构存储到SQL数据库中

我是ASP.NET和SQL服务器的新手,所以请原谅我的无知…… 如果我在C#中有一个数据结构(例如,让我们说,存储一些字符串的向量),是否可以像在SQL表中那样存储向量的内容? 我想这样做,以便尽快将数据转换回矢量forms,而不必逐个元素地构造它。 几乎就像将二进制数据写入文件然后读取它并将其复制到C中的已分配结构。 我在SQL Server 2008上创建了一个表,其中一个字段被定义为VARBINARY(MAX)。 我以为我会从那开始。 有人可以向我展示一个例子,说明如何在该字段中存储和检索10个字符串的向量? 这甚至可能(我想不出为什么不)? 谢谢!

.Net 4中这种巨大的性能差异背后的原因是什么?

我刚刚在RedBlack Tree上做了一些研究。 我知道.Net 4.0中的SortedSet类使用RedBlack树。 所以我使用Reflector取出了那部分并创建了一个RedBlackTree类。 现在我在这个RedBlackTree和SortedSet上运行一些perf测试,插入40000个顺序积分值(从0到39999开始),我惊讶地发现有很大的性能差异如下: RBTree took 9.27208 sec to insert 40000 values SortedSet took 0.0253097 sec to insert 40000 values 它背后的原因是什么? 顺便说一句,我只在Release配置中运行测试,这里是一个小测试代码 var stopWatch = new Stopwatch(); var rbT = new RedBlackTree(); stopWatch = new Stopwatch(); stopWatch.Start(); for (int i = 0; i < 40000; i++) { rbT.Add(i); } stopWatch.Stop(); Console.WriteLine(stopWatch.Elapsed); var ss […]

如何将有向无环图(DAG)转换为树

我一直在寻找C#示例来将DAG转换为树。 有没有人有正确方向的例子或指针? 澄清更新 我有一个图表,其中包含我的应用程序需要加载的模块列表。 每个模块都有一个依赖的模块列表。 例如,这里是我的模块,A,BC,D和E. A没有依赖关系 B取决于A,C和E. C取决于A. D取决于A. E取决于C和A. 我想要解决依赖关系并生成一个看起来像这样的树… – 一个 – + – B —– + – Ç ——— + – d – + – 电子 拓扑排序 感谢您的信息,如果我执行拓扑排序并反转输出,我将按以下顺序 一个 乙 C d Ë 我想维护层次结构,以便我的模块加载到正确的上下文中,例如…模块E应该与B在同一个容器中 谢谢 罗汉

如何在链表中找到中间元素

我需要一个详细的算法,在c#中关于如何在链表中找到中间元素。 我检查了谷歌,所有人都在谈论在列表上并行移动的两个指针。 但实际上,我找不到算法的详细解决方案。 以及如何实施这两个指针。 我需要有关性能的最佳解决方案。

打印列表项

List list = new List(); list.Add(“A”); list.Add(“B”); List list1 = new List(); list.Add(“a”); list.Add(“b”); for (int i = 0; i < list.Count; i++) { // print another list items. for (int j = 0; j < list1.Count; j++) { Console.WriteLine("/" + list[i] + "/" + list1[j]); } } 我想编码像这个string tmpS =+ list[i]; 加入下一个列表项togeter。 然后打印tmpS 但编译错误CS0023:运算符’+’不能应用于’string’类型的操作数。 […]

数组中K个元素的总和等于N.

给定一个数组说nums = {1,2,5,3,6,-1,-2,10,11,12},使用max no of elements(比如maxNums = 3)找到其总和的元素(比如sum = 10)= K. 所以如果要使用maxNums = 3求和= 10则答案是 {1 3 6} {1 -1 10} {1 -2 11} {2 5 3} {2 -2 10} {5 6 -1} {-1 11} {-2 12} {10} 我写了一个递归函数来完成这项工作。 如果没有递归,我该怎么做? 和/或内存较少? class Program { static Int32[] nums = { 1,2,5,3,6,-1,-2,10,11,12}; static Int32 sum = 10; […]

单用户数据库选项

我将使用.NET框架和C#编写Windows应用程序。 应用程序将需要存储将被查询,连接和处理的关系数据。 以前我使用SQL Server完成了这项工作,但这对我现在正在制作的应用程序来说完全是过度的。 在我的应用程序中存储关系数据的最简单,最简单的方法是什么? 如果我在Mac上,我会使用SQLite。 什么是.NET等价物?

OutofMemoryexception对象数组大小

我正在尝试将电子表格数据捕获到2D数组中。 我正在使用VSTO。 int rc = 1048576; int cc = 1638; string[,] arr = new string[rc, cc]; 最后一行抛出Out of Memoryexception。 我想显示消息告诉用户只能捕获’X’元素。 检查MSDN并提到了16,777,216的行计数限制。 无数据表的列数限制。 无法找到2Darrays的限制。 我的问题不是为什么例外。 我正在寻找的是,如果您正在进行VSTO开发,并且必须捕获DataTable中的工作表以执行内存中连接等,您将需要这样做: string[,] arr = new string[rc, cc]; Microsoft.Office.Interop.Excel.Range selection arr = selection.Value as string[,]; 然后将该数组中的数据复制到datatable。 现在,用户应该选择的元素数量的理想限制是什么。 因此,当选择超出此条件时,我可以设置rowcount / columncount lmits并显示消息。

网格的最优高密度二元空间划分

我正在编写一个游戏,其中一个角色在一个随机生成的地图上实时移动(因为它被揭示。)这引出了一个有趣的数据结构问题。 地图在进入视图时生成,围绕角色的圆圈(可能是20-60个图块),因此在有数据的地方,它非常密集,并且全部在网格中。 但是,如果没有数据,可能会有巨大的,未经生成的空间。 例如,角色可以走在一个巨大的圆圈中,在巨大的空白空间周围创造一圈瓷砖。 简单的矩阵会产生大量不必要的开销,并浪费大量空间。 但是,典型的BSP似乎会因为数据的密集网格特性而导致性能下降。 你有什么建议? 矩阵 – 四叉树 – 两者的混合?

DataTable是否比List 消耗更多内存?

是否在性能方面有所折衷,在内存消耗方面有所折衷?