Если у вас есть , чтобы иметь List<string>
, и вы не можете сначала отсортировать его, то нет ничего, что вы можете сделать, что будет быстрее, чем простой Contains
, который обходит всесписок.Если список отсортирован, вы можете вместо этого выполнить бинарный поиск.
Если вместо этого вы можете использовать HashSet<string>
, это, очевидно, будет намного быстрее, когда набор станет больше.(Для небольших наборов разница в производительности, вероятно, не имеет значения.)
Обратите внимание, что HashSet<T>
делает не , хотя сохраняет порядок элементов - так что, если это важно для вас, выможет захотеть оставить HashSet<string>
и a List<string>
.Затем вы можете сделать:
if (stringSet.Add(newValue))
{
stringList.Add(newValue);
}
Обратите внимание, что если вы в настоящее время просто обеспокоены производительностью в резюме, вам следует установить соответствующие цели, чтобы определить, что достаточно достаточно быстро , и измеритьпротив этих целей - при написании простейшего кода.Знаете ли вы, что на самом деле список станет большим в вашем реальном приложении?