通过名称和索引将特定值搜索到大量字符串值中的正确,更快速和准确的方法是什么,大约7000个项目处于更新但未更改的序列顺序。
我希望在我的情况下避免使用数据库,但是将其包含在列表中进行比较可能也有一点意义。
1)
List<string> List = new List<string>();
如果字符串包含任何存在的字符串,我检查了要替换的90 000个值的列表值,看起来比ISet<String> List = new HashSet<String>();
和HashSet<string>
ElapsedMilliseconds
结果更快。
不确定此检查是否足以确定,但是与ISet
和HashSet
相比,来自替换字符串的现有值的结果是快速,准确且从不平均或缓慢,即使ISet
和HashSet
彼此的优势取决于数量,例如20000或90000值。在这种搜索中,似乎List<string>
总是更快,结果大多看起来像这样:
List: 312 ems (fast)
ISet: 514 ems (average)
HashSet: 563 ems (slow)
也只是为了检查我试图找到列表搜索和搜索列表范围索引的文本文件之间的执行速度和准确性的差异,似乎结果是相同的。
无论如何,我不确定大型列表是否合适,据我所知,按字符串或索引搜索与替换不同。
2)
HashSet<string> hashSetStr = new HashSet<string>();
如果我需要按名称和索引搜索必须以不变的顺序相互关联的项目列表,则可以快速进行编队,但如何直接使用。
3)
Dictionary<string, int> Dict = new Dictionary<string, int>();
可以用作索引和字符串值的对整数,但是如何使用更新的词典来搜索与值的数量相关