我有一个排序的 StringList 并想替换
foreach (string line3 in CardBase.cardList)
if (line3.ToLower().IndexOf((cardName + Config.EditionShortToLong(edition)).ToLower()) >= 0)
{
return true;
}
使用 binarySearch,因为 cardList 相当大(~18k),这个搜索占用了大约 80% 的时间。
所以我找到了 List.BinarySearch-Methode,但我的问题是 cardList 中的行看起来像这样:
Brindle_Boar_(Magic_2012).c1p247924.prod
但我无法生成 c1p... ,这是一个问题,因为 List.BinarySearch 只能找到完全匹配。
如何修改 List.BinarySearch 以便在只有部分字符串匹配的情况下找到匹配项?
例如搜索 Brindle_Boar_(Magic_2012) 应该返回 Brindle_Boar_(Magic_2012).c1p247924.prod 的位置