2009-12-14 75 views

回答

5

StringDictionary仅仅是一个哈希表,其中的键和值是string s。这在仿制药之前就存在了(所以Dictionary<string, string>是不可能的)。

您需要的数据结构是trie。上有CodeProject实现:

  1. Phone Directory Implementation Using TRIE
  2. A Reusable Prefix Tree using Generics in C# 2.0

或者,如果你是那种家伙,滚你自己(见CLRS)。

+0

+1很好的回答!我不记得它的确切名称 - 特里! – 2009-12-14 17:06:03

4

我不相信StringDictionary支持前缀搜索,但是如果您使用的是SortedList<,>,则可以对键的范围进行二进制搜索,直到找到前缀之前和之后的第一个条目。

2

我认为StringDictionary是旧学校(前仿制药)。您应该使用Dictionary(Of String, String),因为它实现了IEnumerable(认为LINQ)。一个极端的lame thing about StringDictionary是它不区分大小写。