3

C# で一連の文字列のリストを格納する最も効率的な方法を知りたいです。

バックグラウンド

Hold(object)私の目標は、またはのような「プロパティ」に関する情報を保存することLocation(x,y,object)です。これを行うために、プロパティ名を「値のセット」にマップする辞書があります。

たとえば、これらの値を持つ「場所」プロパティに「場所」が設定されているとします。

location -> ["1","2","robot1"]
            ["2","3","robot2"]
            ["2","5","key1"]

次のようなクエリを実行したい

DB["location"].Contains(["1","2","robot1"])

それが可能かどうかはわかりませんが、私が必要としているもののアイデアを提供することです。:)

私がやった事

これらのデータを頻繁に変更してアクセスする必要があるため、HashSet を選択しました。ただし、主なオプションが 2 つあります。

  1. 1 つ目は、 のようなものを使用することですHashSet<string[]>。問題は、標準的な動作は参照によって配列を比較することであるため、HashSet は重複を見つけることができないと思います。同じ理由で、「セットに [a,b,c] が含まれているかどうかを確認する」問題を解決する良い方法がわかりません。
  2. 2 つ目は、 のようなものを使用することですHashSet<List<string>>。しかし、タプルの単純なセットを格納するためのリストは必要ありません。そのような単純な仕事には多すぎるように思えます。

別の方法は、「引数」を格納する独自のクラスを作成することですが、標準ライブラリに何かが存在する場合は、これを行いたくありません。:)

ありがとう :)

4

2 に答える 2