Прежде всего, удалите ToString()
из me.Key.ToString()
.
Затем используйте сравнение порядковых строк (при условии, что это не влияет на корректность):
line.StartsWith(me.Key, StringComparison.Ordinal);
Это полезно, потому что стандартные сравнения строк следуют различным правилам Юникода на равных.Например, нормализованные и денормализованные последовательности должны рассматриваться как равные.Ordinal
просто сравнивает необработанные символьные данные, игнорируя правила равенства Unicode.Подробнее об этом здесь , например, или здесь (который утверждает, что это быстрее, но без кавычек).
Последнее, профилируйте код.Вы будете удивлены, но в большинстве случаев медленная часть совсем не такая, как вы думаете.Например, это может быть часть, где вы добавляете что-то в словарь.