-1

.net プロジェクトに問題があります。System.Collections.Hashtable を使用して値を保存し、次のようなキー値を追加しています

「段落の間に改行を入れる」

そのキー値で「の間」という単語を検索したい。

今、私は使用しています

//Declare hash table
System.Collections.Hashtable _Index;

//add values to hashtable
_Index.Add("putreturnsbetweenparagraphs",theword );

//search section
string searchWord="between";
            if (_Index.ContainsKey(searchWord))
            {    
               //code
            }

これについて何か考えはありますか?

4

2 に答える 2

3

まず、実際に .NET 1.1 を使用していない限りDictionary<TKey, TValue> non-generic の代わりにusing を検討する必要がありますHashtable

ただし、それを超えると、単純なキー/値マップはあまり役に立ちません。基本的に、何らかの方法でデータ構造を変更するか、コレクション内のすべてのキーを反復処理して、それらのいずれかにターゲット文字列が含まれているかどうかを確認する必要があります。マップをキーと値のペアのシーケンスとして効果的に扱うことになります。ハッシュによる高速ルックアップは、等価ルックアップを実行する場合にのみ役立つため、無関係です。

于 2012-11-15T07:22:51.030 に答える
1
string value = (string)_Index.Cast<System.Collections.DictionaryEntry>()
                             .First(x => (x.Key as string).Contains(searchWord))
                             .Value;
于 2012-11-15T07:26:23.523 に答える