NameValueCollection的高效搜索

发布于 2024-07-30 01:04:18 字数 68 浏览 6 评论 0原文

有没有一种方法可以从 NameValueCollection 中提取属于特定模式/命名约定的键,而不必迭代集合中的每个值?

Is there a way to pull out keys from a NameValueCollection that pertain to a certain pattern/naming convention without having to iterate through every value in the collection?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(3

徒留西风 2024-08-06 01:04:18

名称值集合的设计目的并不是特别有效地进行这样的搜索。 无论使用什么方法,都必须检查所有项目。 你可以使用 LINQ; 就像是:

col.Keys.OfType<string>().Where(s => s.StartsWith("SomeString"))

A name value collection is not designed to be particularly efficient at searching like that. Whatever method you use, it has to go through all items. You could use LINQ; something like:

col.Keys.OfType<string>().Where(s => s.StartsWith("SomeString"))
海未深 2024-08-06 01:04:18

您也许可以结合使用正则表达式和 linq 魔法,但在这一切的底部,您将需要迭代每个值来检查它们。 如果您使用 linq,则不需要编写迭代,但在幕后它们仍然会完成。

如果您确实需要加快速度,那么您需要查看您所采用的模式/命名约定,然后创建一个可搜索的数据结构来满足这些需求。

You might be able to do a combination of regex and linq magic, but at the bottom of all this, you will need to iterate over every value to check them. If you use linq, you won't need to write the iterations, but under the hood they will still be done.

If you really need to speed things more up than this, you need to looks at what kind of pattern / naming conventions you're into, and then make a searchable data structure to fit those needs.

多孤肩上扛 2024-08-06 01:04:18

两条评论:

1)你的问题太模糊了。 有多种支持高效搜索的数据结构,例如后缀和前缀尝试、红黑树的变体等。 您的问题的有用答案取决于您正在搜索的模式/命名约定的类型。 发布一些示例输入和预期输出。

2)除非你确实需要,否则实现复杂的数据结构是没有意义的。 您应该问自己的第一个问题是您是否真的需要效率:对于包含 < 的集合 50,000 个项目,我真的怀疑使用奇特的数据结构搜索密钥与直接的线性搜索相比,您会在内存、CPU 或性能方面看到明显的差异。

Two comments:

1) Your question is too vague. There are a variety of data structures, like suffix and prefix tries, variants on red-black trees, etc which support efficient searching. A useful answer to your question depends on exactly the kind of pattern / naming convention you're searching for. Post some sample input and expected output.

2) There's no point implementing a complicated data structure unless you really need it. The first question you should ask yourself is whether you really need efficiency: For a collection containing < 50,000 items, I really doubt you'll see a perceptible difference in memory, cpu, or performance searching your keys with a fancy data structure than a straightforward linear search.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文