【问题标题】:XPathNavigator performance with large secondary datasource大型辅助数据源的 XPathNavigator 性能
【发布时间】:2013-01-07 11:16:56
【问题描述】:

我有一个包含大约 23k 个条目的辅助数据源。用户输入一个 ID,只得到 1 个数据集。 如果我使用:

XPathNavigator test = nav.SelectSingleNode("/dfs:myFields/dfs:dataFields/d:SharePointListItem_RW[d:Title = '" + ID + "']", NamespaceManager);

返回节点大约需要 8 秒。有没有更好(更快)的方法?

【问题讨论】:

    标签: c# xpath xpathnavigator


    【解决方案1】:

    您可以在 Dictionary 中收集所有 SharePointListItem_RW 节点(key 将是标题 ID,value 将是包含标题的节点id) 在您的应用程序的开头..

    [内存消耗在这里不是问题,因为它几乎不会超过 1MB]

    然后您可以使用DictionaryTryGetValue方法选择特定节点

    复杂度是O(1),速度很快

    【讨论】:

    • 任何提示如何将所有节点放入字典中?那很快吗?
    • 好的,但是如何将所有 SharePointListItem_RW 节点放入字典中?
    • @DanielR 查看thisthis
    • 这解释了字典的使用。但是我应该如何在合理的时间内将所有 23000 个节点放入字典中?还是您的意思完全不同?
    • 很好,但这在 VSTA (C# 2005) 中也可用吗??
    猜你喜欢
    • 1970-01-01
    • 2010-09-18
    • 1970-01-01
    • 1970-01-01
    • 2011-04-13
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多