【c# – 用于只读字典访问的最有效的内存数据结构】教程文章相关的互联网学习教程文章

c#-应该使用哪种数据结构从文本文件读取和存储大约500万个条目

我必须处理两个大约1 GB的文本文件,并比较文件中的数据.我应该使用哪种数据结构存储数据?使用字典/哈希表比较如此庞大的记录会导致内存不足异常.还是应该读取数据并将其存储在数据库中?解决方法:从根本上讲,数据库对于这种行为是最好的,它们旨在处理大量数据,并且针对这种情况进行了更多的优化工作,而您有可能做到. 您也可以使用SqlLite之类的InProcess SQL,或者甚至使用Raven或MongoDB之类的NoSql方案.

在运行时将.h头文件解析为c#数据结构

我正在尝试编写一个C#库来处理我的C/C++头文件..我希望能够读取和解析头文件并在C#中操作函数原型和数据结构.由于#ifdefs和类似的东西引起的所有代码brances,我试图避免编写C Parser. 我曾尝试使用EnvDTE,但找不到任何合适的文档.有什么想法我该怎么做? 编辑-谢谢您的回答…这里是有关我的项目的更多详细信息:我正在使用调试API为Windows编写类似ptrace的工具,这使我能够跟踪已编译的二进制文件并查看正在调用哪些Windows API. ....

C#数据结构以分层的方式存储项目,一旦建立了分支,它便允许我检索它并将其添加为另一个分支的一部分【代码】

我在一个难题中挣扎,必须找到一种方法来存储程序可能遵循的所有可能路径.以这张图片为例. 在该图像中,每个数字代表一个复杂的过程,该过程可能会调用其他过程来执行自身,描述了您可以在图像中看到的所有路径. 所有实线表示过程必须遵循的路径,而虚线表示可选的路径. 知道执行是从左到右,从上到下开始的,因此必须始终牢记,如果已经构建了分支,则必须重用它,而再也不能重新构建它. 在此另一幅图像中,例如,黄线表示在执行过程编号37期间...

c# – 哪种数据结构适合临时大二进制数据存储?

计划使用数据结构将临时二进制数据存储在内存中进行分析. 数据的最大大小约为10MB. 数据将一次添加到408字节. 没有搜索,检索那些临时二进制数据的操作. 数据将被清除,存储将重新用于下一次分析. 问题: >哪种结构有利于此目的? byte [10MB],List< bytes>(10MB),List< MyStruct>(24000),或……?>如何快速清除List或数组中的数据(不是List.Clear(),只是将值设置为0)?>如果我说List.Clear(),当我在Clear()之后调用List.AddRange()时...

c# – 用于存储大量数字字段的最佳数据结构【代码】

我正在使用一个类,比如Widget,它具有大量的数字真实世界属性(例如,高度,长度,重量,成本等).有不同类型的小部件(链轮,齿轮等),但每个小部件共享完全相同的属性(当然,小部件的值会有所不同,但它们都有重量,重量等).我有1000种每种类型的小部件(1,000个齿轮,1,000个链轮等) 我需要对这些属性执行大量计算(比如计算1000个不同小部件的属性的加权平均值).对于加权平均值,我对每种小部件类型都有不同的权重(即,我可能更关心链轮的长度而不...

c# – xml到数据结构【代码】

我有一个看起来像这样的xml文件<step><id>3</id><backid>1</backid><question>Are you having a good day</question><yesid>4</yesid><noid>5</noid></step>它被设置为一个应用程序,询问用户是和没有问题来协助指导用户完成复杂的业务流程. yesid和noid是该过程下一步的id号.在过去(以及其他语言)中,我会将xml文件中的信息加载到多维数组中并从那里开始. 但是我试图在这个应用程序中使用linq到xml,我想知道是否有更有效的方法来执行...

c# – 如何为二维LINQ操作创建高效的数据结构?

问题:我有两种对象,我们称之为构建和改进.大约有30个改进实例,而可以有1-1000个建筑物.对于构建和改进的每个组合,我必须执行一些繁重的计算,并将结果存储在Result对象中. 建筑物和改进都可以用整数ID表示. 然后我需要能够: >有效地访问给定建筑物和改进的结果(编辑:请参阅下面的评论)>对结果进行聚合以获得给定建筑物的所有改进,例如.Sum()和.Average()>对给定改进的所有建筑物的结果执行相同的聚合 这将发生在Web服务器后端,因...

使用C#将数据表转换为分层数据结构(JSON)【代码】

我正在对datatable执行SQL查询.查询可以返回多个列.结果是键值格式并表示分层数据.请参见下面的屏幕截图图像显示3个部分.首先是数据,然后是数据的层次表示和JSON等价物. 目前图像显示4级数据,但我们可以有6-7级数据.格式将保持不变,但列数可以更改. 如何使用C#获得所需的结果? ?我知道这是基本的编程,但我很难用它.解决方法:使用您在示例中显示的固定级别层次结构,可以使用LINQ query with grouping为JSON生成树结构.以下是三级层...

C#数据结构

一、截取method: ykcloud.wm.reverse.ship.pick.update.and.finish code: -23009 message: 商品:107274短拣,需求数量:2.0,录入数量:0.0var ss = error.Split(\r, \n).ToList().First(ee => ee.Contains("code")); var sss = ss.Split(:); var ssss = sss[1]; MessageHelper.InfoMsg(error);

c#如何声明数据结构类型为null?

原文:c#如何声明数据结构类型为null?可以通过如下两种方式声明可为空的类型:System.Nullable<T> variable;T?variable;eg: int值是-2,147,483,648 到 2,147,483,647 ,默认值是 0,不包含null值。(1):int? aa = null;int类型不能为null,通过"不能为null的数据类型?"可以处理为null。语法 int? 是 Nullable<int> 的简写,其中int是值类型。 这两种形式是可互换的。(2):System.Nullable<int> result = null;int类型不能为null,通...

C#_数据结构--数据表_2018Oct【代码】

常见的线性表: 1.顺序表 List<> 表中元素有索引和固定连续的顺序, 方便元素遍历和查找 2.链表 需要自己构建, 有固定的链接,没有索引 方便元素插入和删除 3.栈 Stack<T> 类似于一个桶,后进入的元素先出去 FILO 4.队列 Queue<> 类似于一个通道,先进入的元素先出去 FIFO 5.字典 Dictionary<> 键值对组合 键是...

《C#从现象到本质》读书笔记(九)第11章C#的数据结构

《C#从现象到本质》读书笔记(九)第11章C#的数据结构 C#中的数据结构可以分为两类:非泛型数据结构和泛型数据结构。 通常迭代器接口需要实现的方法有:1)hasNext,是否还有下一个元素。2)Next,移动到下一个元素。3)Reset,重置。 C#中对迭代器模式的实现就是IEnumerable接口。 使用yield关键字实现方法GetEnumerator。yield的延迟执行特性体现在:只有当需要取值时,才会执行,否则状态机的状态就停在0。 foreach迭代时,不能...

c# – 用于只读字典访问的最有效的内存数据结构

在C#中,我有一些静态数据可以放在Dictionary< int,T>中.其中T是一些参考类型. Web应用程序只需要静态初始化一次(它不会更改). 由于我不必担心插入或删除性能,使用什么是最好的数据结构(或者我应该自己动手)?我可能会看到大约100,000个条目,间隔相当均匀. 我正在寻找一种获取这些数据的最佳算法.字典&LT&GT虽然不错,但我认为必须有针对只读数据优化的东西. 我怀疑,但尚未确认这些密钥的范围可能是0 – 400,000.如果是这样的话,建...