У меня есть строка, которая может содержать пробельные символы, и я хочу проверить, действительно ли она пуста.
Существует несколько способов сделать это:
1 if (myString.Trim().Length == 0)
2 if (myString.Trim() == "")
3 if (myString.Trim().Equals(""))
4 if (myString.Trim() == String.Empty)
5 if (myString.Trim().Equals(String.Empty))
Я знаю, что это, как правило, явный пример преждевременной оптимизации, но мне любопытно, и есть шанс, что это будет сделано достаточно, чтобы повлиять на производительность.
Итак, какой из них является наиболее эффективным методом?
Есть ли лучшие методы, о которых я не думал?
Изменить: Заметки для посетителей по этому вопросу:
-
Были некоторые удивительно подробные исследования этого вопроса, в частности, Энди и Джона Скита.
-
Если вы наткнулись на вопрос во время поиска чего-то, это стоит того, чтобы читать, по крайней мере, сообщения Энди и Джона полностью.
Похоже, что существует несколько очень эффективных методов, и наиболее эффективный зависит от содержимого строк, с которыми мне нужно иметь дело.
Если я не могу предсказать строки (что я не могу в моем случае), методы Jon IsEmptyOrWhiteSpace
кажутся более быстрыми.
Спасибо всем за ваш вклад. Я собираюсь выбрать Энди, как "правильный", просто потому, что он заслуживает повышения репутации за свои усилия, и у Джона уже есть репутация в 11 миллионов миллиардов.