У меня есть список строк (a List<String>
), который может содержать от 1 до 6 записей.То, что я хочу сделать, это использовать этот список строк для поиска, но я хочу, чтобы возможные поиски могли использовать любую комбинацию из 2 или более этих строк для поиска.Я использовал Dictionary<List<String>, String>
в настоящее время.
ex.Предположим, в моем списке есть следующее: "огонь", "аэро", "гром", "вода", "метель", и у меня есть следующие записи в моем словаре:
List<String>(){"fire", "aero"}, "searing wind"
List<String>(){"fire", "aero", "thunder"} "firestorm"
List<String>(){"aero", "thunder"}, "storm"
List<String>(){"aero", "water", "blizzard"}, "snowstorm"
List<String>(){"aerora", "blizzara"}, "hailstorm"
Я хочупоиск для возврата первых 4 записей, так как мой базовый список содержит все значения, необходимые для их поиска.Мне также нужно знать, какие значения использовались для поиска, так как эти значения нужно будет позже удалить из базового списка.Число записей в словаре, скорее всего, будет ~ 400
. Я могу придумать исчерпывающий способ сделать этот поиск, но поскольку тот факт, что порядок будет иметь значение при поиске, он будет приниматьпора сделать все перестановки и поискать их.Я мог бы установить алфавитный порядок в списках ключей словаря, если бы это помогло.Кто-нибудь знает лучший способ сделать это, или, возможно, другой, более эффективный способ сделать это?Я уже использую sqlite для некоторых других вещей в этой программе, так что если это даст мне более быстрый поиск, я мог бы использовать это.
Спасибо