Проверка, нет ли строки в C#

В этом примере используются три строки для сравнения разных методов для определения, является ли строка пустой. Один из методов: метод string класса IsNullOrWhiteSpace работает только в .NET Framework 4.5 или новее, поэтому этот пример предназначен для этой версии Framework и использует Visual Studio 2013. (Visual Studio 2012 также может настраивать таргетинг на эту версию Framework, но я ее не установил прямо сейчас.)

Программа использует следующий код для инициализации трех строк.

string string1 = "", string2 = "ABCD", string3

Для введенного количества испытаний и для каждого метода код проверяет string1 и string2, чтобы увидеть, что пусто. Программа проверяет обе строки в случае, если есть разница в пустых строках тестирования производительности и непустых строках.

Следующий код показывает тесты, выполняемые программой.

if (string1 == string.Empty) string3 = string1;
if (string2 == string.Empty) string3 = string2;
...
if (string1.CompareTo(string.Empty) == 0) string3 = string1;
if (string2.CompareTo(string.Empty) == 0) string3 = string2;

if (string1 == "") string3 = string1;
if (string2 == "") string3 = string2;

if (string1.Length == 0) string3 = string1;
if (string2.Length == 0) string3 = string2;

if (string.IsNullOrEmpty(string1)) string3 = string1;
if (string.IsNullOrEmpty(string2)) string3 = string2;

if (string.IsNullOrWhiteSpace(string1)) string3 = string1;
if (string.IsNullOrWhiteSpace(string2)) string3 = string2

Если вы посмотрите внимательно на изображение, вы увидите, что тестирование свойства Length строки и IsNullOrEmpty являются самыми быстрыми. Используя ==, чтобы сравнить строку с string.Empty и "", потребовалось немного больше времени. Метод IsNullOrWhitespace занял больше времени. Удивительно, что метод CompareTo занял более 25 раз!

Имейте в виду, что тесты проводились огромное количество раз (100 миллионов раз в этом тесте), поэтому общее количество используемого времени крошечное. Метод CompareTo медленный и не все читаемый, поэтому вы, вероятно, не должны его использовать. Метод IsNullOrEmpty немного читаем.

Источник: http://csharphelper.com/blog/2017/09/efficiently-see-if-a-string-is-blank-in-c/

1 Звезда2 Звезды3 Звезды4 Звезды5 Звезд (Пока оценок нет)
Adblock
detector