我有一个数据库,比方说1000个字符串。每当我的程序的用户写一个句子时,它会检查数据库SELECT * WHERE trigger=sentence
,并返回数据行。考虑到它是一个数据库,这非常快。
但是对于程序来说,在启动时将整个数据库加载到Dictionary<string, string>
会更方便。这将允许我使用string.Contains(sentence)
,因此(子)句子可以在句子中的任何地方,而不是整个事物。
只有一千个琴弦,没关系。但是,如果数据库变大,比如说... 100.000字符串呢?更? foreach (var w in dictionary.Keys) if (w.Contains(command)) //etc
超过那么多字符串,可能每秒几次?
有没有正确的方法来检查如此大量的字符串? 还是我不必担心?看起来很多,但电脑让我更加惊讶。
答案 0 :(得分:1)
如果您愿意在代码中创建动态sql:
SELECT * FROM YOURTABLE WHERE 'The sentence the user typed' like '%' + [StringColumn]+ '%'
这应该根据用户输入的内容检查每个字符串。