gpt4 book ai didi

.net - 解析 DataSet.Tables 或 Dictionary 哪个更快

转载 作者:行者123 更新时间:2023-12-02 06:12:36 24 4
gpt4 key购买 nike

我正在为导入导出测试创建一个模拟数据库(算法读取和写入复杂数据结构到我们的数据库,而不仅仅是测试 IO 操作),并且我正在尝试决定是否使用 DataSet 来存储模拟表(按表名)在人造数据库中,或 Dictionary()

就按名称检索数据表而言,我是否希望 dataset.Tables["TableName"] 或 dictionary<"TableName">(来自 Dictionary()?

最佳答案

实际上,Dictionary<,>由于执行字典逻辑(散列、桶等)的固有复杂性,通常比线性搜索慢。在我的测试中,截止点(Dictionary<,> 开始变得更快)通常在 150 个元素左右。由于您的表通常少于 150 个,因此我很乐意使用线性列表来提高性能。

(这根本不意味着“不要使用 Dictionary<T> ;它只是意味着性能可能不是这个特定用例的主要原因;唯一的 key 执行和foo["bar"] 模型可能是)

部分原因是获取哈希的复杂性 - GetHashCode()对于 string特别是相对昂贵(尽管 int.GetHashCode() 快得令人眼花缭乱;-p)。

实际上,在大多数小数据集中,您永远不会注意到两者之间的区别。如果您有大量数据,那么显然您需要为此进行规划并相应地编写代码。

Dictionary<,> 之间的其他差异和类似 List<> 的东西是唯一性:a Dictionary<,>不会让您有重复的 key (尽管 .NET 3.5 中的 Lookup<,> 会)。

关于.net - 解析 DataSet.Tables 或 Dictionary<string, Tables> 哪个更快,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/355141/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com