- 1
- 2
- 3
- 4
- 5
- 6
- 7
public static bool AddStringIfNoExist(this List<string> strlist, string str)
{
if (str == "") return true;
foreach (string s in strlist) if (s == str) return true;
strlist.Add(str);
return false;
}
Нашли или выдавили из себя код, который нельзя назвать нормальным, на который без улыбки не взглянешь? Не торопитесь его удалять или рефакторить, — запостите его на говнокод.ру, посмеёмся вместе!
+3
public static bool AddStringIfNoExist(this List<string> strlist, string str)
{
if (str == "") return true;
foreach (string s in strlist) if (s == str) return true;
strlist.Add(str);
return false;
}
Hashset? А что это такое?
Функция для решения маленькой конкретной подзадачи - разве что public смущает.
Это extension method, он для всех листов работать будет. Так что для решения маленькой конкретной подзадачи не катит, хотя бы потому, что доступен отовсюду.
В коде используется для получения коллекции уникальных стрингов из другой коллекции.
Пусть мучается та макака, которая вызовет ЭТО для нулл.
1. O(N) вместо O(1), а с учётом использования это O(квадрат) вместо O(N).
2. Частный случай проверки на пустую строку в общем алгоритме.
3. Замусоривание выдачи intellisence методов для всех листов.
А, ну да, ещё форматирование говно.