Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/vb.net/14.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/jquery-ui/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 列表或字典;当需要存储大量数据时,最好使用哪种方法&;频繁查找发生_C#_Vb.net - Fatal编程技术网

C# 列表或字典;当需要存储大量数据时,最好使用哪种方法&;频繁查找发生

C# 列表或字典;当需要存储大量数据时,最好使用哪种方法&;频繁查找发生,c#,vb.net,C#,Vb.net,当需要存储大量数据(引用类型)且执行频繁查找时,首选哪种技术?字典基于哈希表,键查找时间为O(1),而列表的查找时间为O(n)。对于大数据量,字典将更快。谷歌上已经有很多关于这方面的信息了,例如,如果你担心词典因性能原因不适合你,那么可能词典不是存储数据的正确方式 由于您没有提供太多的信息,我将尽我所能猜测您有大量可能被持久化的数据。在这种情况下,数据库可以解决这个问题,因为SQL数据库比数组或对象列表更具可伸缩性 您甚至可以使用作为对象访问数据库结构。数据库中的表将映射到具有每列属性的类。这将

当需要存储大量数据(引用类型)且执行频繁查找时,首选哪种技术?

字典基于哈希表,键查找时间为O(1),而列表的查找时间为O(n)。对于大数据量,字典将更快。谷歌上已经有很多关于这方面的信息了,例如,如果你担心
词典因性能原因不适合你,那么可能词典不是存储数据的正确方式

由于您没有提供太多的信息,我将尽我所能猜测您有大量可能被持久化的数据。在这种情况下,数据库可以解决这个问题,因为SQL数据库比数组或对象列表更具可伸缩性

您甚至可以使用作为对象访问数据库结构。数据库中的表将映射到具有每列属性的类。这将产生原始SQL提供的性能,除非您正在构建更复杂的查询


但这绝对值得研究。

定义“大量数据”。千字节?千兆字节?PB?你是怎么查的?这里没有足够的信息来回答这个问题。如果您的数据不能放入内存,那么两个都不合适。@DourHighArch*Bites?啃?字节?千字节?兆字节?千兆字节?Terrabytes?PB?EB?泽塔比特斯?Yottabytes?都不是。当你有大量的数据时,使用一个设计用来存储大量数据的数据库。如果(并且只有当)你知道你要寻找的关键是什么,这是O(1)。对于其他类型的查找,它的性能要差得多;例如,如果你必须搜索一个值,那么它就是O(n)。否则就没有理由使用字典。实际上,字典也是我的第一个想法,但我认为他必须澄清他的帖子,以确定在这种情况下这是否是一个合适的解决方案——没有足够的信息说明他计划如何查找,或者确切地说有多少数据。他可能(也可能不是)提前知道钥匙,例如,他没有分享足够的信息来确定。