c# 速度 - ハッシュテーブルを使ってキーだけを保存する?




使い方 違い (3)

可能な重複:
一意の文字列を格納するためのコレクション

現在、私はDictionary <文字列、ブール>を使ってユニークな識別子のリストを保存しています。 これらの識別子にはデータを関連付ける必要はありません。重複をすばやくチェックできるようにするために辞書を使用しています。

私はキーだけを必要とし、値を必要としないので、辞書はここに行くための道ですか、それとも私がそれについて知らない他のコレクションがより適しているでしょうか?


Answers

HashSet<T>


.NET 3.5にはHashSet<T>コレクション型が含まれています。


1行のコードで多くのキーを辞書から削除する必要がある場合は、map()を使用することは非常に簡潔であり、Pythonicで読めると思います。

myDict = {'a':1,'b':2,'c':3,'d':4}
map(myDict.pop, ['a','c']) # The list of keys to remove
>>> myDict
{'b': 2, 'd': 4}

また、辞書にない値をポップするエラーをキャッチする必要がある場合は、map()の中で次のようにlambdaを使用します:

map(lambda x: myDict.pop(x,None), ['a','c','e'])
[1, 3, None] # pop returns
>>> myDict
{'b': 2, 'd': 4}

できます。 myDictに 'e'キーがないのに、 'e'はエラーを引き起こしませんでした。





c# collections dictionary