Путь разработчика    

Как сравнить производительность методов сравнения строк в C#


В этом примере используется следующий код для создания четырех строк:

Python

Затем он использует несколько методов для сравнения первой строки с другими. Например, для сравнения строк используется следующий код: ==.

Python

В следующем фрагменте кода показаны операторы, которые программа использует для выполнения различных сравнений. Последние три метода выполняют нечувствительные к регистру сравнения. (Я объединил их всех в одном месте здесь. Они не все вместе в коде.)

Python

Из результатов видно, что == дает самую быструю производительность, за которой следует .Equals. Метод String.Compare был намного медленнее.

Я думаю, что причина == настолько велика, что C# обрабатывает строки. Когда вы создаете строку в .NET, она интернирована и помещается в основной пул . Позже, если вы создадите еще одну строку, содержащую тот же текст, новая строка относится к тому же экземпляру в станем пуле. Это позволяет сравнительно быстро и легко сравнивать две строки.

Среди тестов без учета регистра, String.Equals дал самую быструю производительность. Преобразование тестовой строки в нижний регистр для каждой итерации было довольно медленным, однако, если вам нужно сравнить строку со многими другими значениями, и вы можете преобразовать тестовую строку в нижний регистр только один раз перед всеми тестами, то ToLower в основном преобразуется в случай ==, и производительность будет намного лучше. Если время выполнения - это всего лишь совокупность по большому количеству сравнений с разными тестовыми значениями, то эта техника не будет работать.

Источник: http://csharphelper.com/blog/2017/02/compare-the-performance-of-string-comparison-methods-in-c/



Источник:

Отзывы (через Facebook):

Оставить отзыв с помощью аккаунта FaceBook:

Как создать строку Java из содержимого файла?

И Л И Использование класса сканера Следующий код Java прочитает весь файл в String. Пример Примечание: useDelimiter ("\ Z") задает разделитель в конце файла...

18 11 2019 18:34:30

Преобразования типов в C#

Что такое конверсии в C#? Преобразование - это механизм преобразования значения одного типа в эквивалентное значение другого типа.  Давайте рассмотрим ниже...

17 11 2019 10:47:51

Сортировка элемента управления ListView, используя все его столбцы в C#

Вы можете сделать сортировку ListView, установив для свойства Sorting значение Ascending или Descending, но это займет дополнительную работу по сортировке...

16 11 2019 21:55:35

Использование улучшенного метода расширения для вычисления стандартного отклонения в C#

Пример Вычислить стандартное отклонение в C# использует метод расширения, который вычисляет стандартное отклонение для целых чисел IEnumerable. К сожалению...

15 11 2019 14:33:36

Отображение простого пароля перед запуском программы на C#

Вы можете подумать, что программа может начинаться с формы пароля, а затем отображать ее основную форму, если пользователь вводит правильный пароль. К сожа...

14 11 2019 23:11:39

Получить имя исполняемого метода в C#

В этом примере показано, как вы можете получить имя метода для текущего исполняемого метода. Обычно вам не нужно получать это имя (вы можете просто посмотр...

13 11 2019 21:57:54

Как получить IP-адрес в Python

Модуль сокетов в Python обеспечивает доступ к интерфейсу сокетов BSD. Имя socket.gethostbyname (имя хоста) переводит имя хоста в формат адреса IPv4. Адрес...

12 11 2019 12:34:43

Всплывающие окна в JavaScript

Всплывающие окна являются наиболее полезным способом отображения предупреждения или любой другой важной информации для посетителей сайта. JavaScript имеет...

11 11 2019 10:19:30

Как найти даты в цифрах Pi в C#

Пример Поиск паттернов внутри pi в C# ищет шаблоны внутри цифры Pi. Вы можете использовать этот пример для поиска таких дат, как 4/1. В этом примере опреде...

10 11 2019 15:15:10

Используйте «округление банкира» и «нормальное округление» в C#

По умолчанию метод Math.Round использует «округление банкира». При округлении банкира число с конечной цифрой 5 округляется до ближайшего четного числа, а...

09 11 2019 22:48:36

Модификаторы доступа в Java

Одним из основных принципов объектно-ориентированного программирования является «скрытие информации», что означает, что объекты не раскрывают все их детали...

08 11 2019 7:11:56

Сохранение управляющих изображений WPF в C#

Иногда мне нужно сохранять управляющие изображения WPF с прозрачным фоном по той или иной причине. На этот раз мне нужно было сделать несколько значков, ко...

07 11 2019 10:54:42

Отображение анимированных GIF-файлов и их изменение во время выполнения в C#

Вы можете отображать анимированные GIF-файлы, установив свойство Изображение кнопки , PictureBox, Label или другой элемент управления в файл GIF. ( Если вы...

06 11 2019 16:14:47

Определение горячих точек карты в C#

Пример Отображение масштабируемой карты с горячими точками в C# использует список горячих точек, определенных следующим кодом. Итак, как вы можете найти оп...

05 11 2019 3:35:11

Отображение метафайла Windows (wmf) в C#

Метафайк Windows (wmf) - это файл изображения, содержащий инструкции для рисования фигур. Напротив, растровые, PNG, JPG и другие файлы растровых изображени...

04 11 2019 5:58:50

Перемещение окна с названием, которое соответствует шаблону в C#

Пример Установите размер и положение другого приложения в C# использует функцию API FindWindow, чтобы найти окно с данным заголовком. К сожалению, FindWind...

03 11 2019 6:11:29

Сделайте диалог выбора, в котором используется цветное колесо в C#

Пример Нарисуйте цветное колесо с альфа-и насыщенными значениями в C# позволяет пользователю выбрать цвет на цветном колесе. В этом примере используется эт...

02 11 2019 5:36:53

Сохранение изображений в базе данных Access в WPF и C#

Пример Отображение изображений в Доступ к базе данных в WPF и C# показывает, как вы можете отображать изображения, сохраненные в базе данных Access. Конечн...

01 11 2019 18:29:40

Сериализация и десериализация объектов в C#

Сериализация - это процесс преобразования объекта в последовательный поток-подобный формат. Часто это означает преобразование его в XML-данные для хранения...

31 10 2019 2:16:55

Объекты и классы в C#

В методе объектно-ориентированного программирования мы разрабатываем программу с использованием объектов и классов. Объект - это как физический, так и логи...

30 10 2019 15:36:24

Среда разработки NetBeans

NetBeans – бесплатно распространяемая среда разработки для языков C, C++, Java, PHP, Javascript, Python и прочих. Этот проект разрабатывается независимой г...

29 10 2019 14:54:13

Каковы функции help() и dir() разные?

В Python help() - это супер полезная встроенная функция, которая может быть использована для возврата документации Python для конкретного объекта, метода,...

28 10 2019 14:29:37

Сделайте бесконечную серию меню в C#

Во время разработки я дал программе главное меню Инструменты с пунктом меню « Инструменты». Оба эти пункта меню используют следующий DropDownOpening обработ...

27 10 2019 7:10:32

List (список) в Python

List ( Список) в Python - один из наиболее часто используемых и очень универсальных типов данных, используемых в Python. Списки являются объектами и содержа...

26 10 2019 5:40:14

Класс FileReader в Java

FileReader - это характерно-ориентированный класс, который используется для обработки файлов в Java. Он предназначен для чтения потоков символов. Один симв...

25 10 2019 4:21:34

Анимация проблемы Башни Ханоя в C#

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

24 10 2019 15:49:53

Программирование Java для начинающих

Обучение программе означает научиться решать проблемы с помощью кода. Эти простые примеры программирования полностью предназначены для начинающих, которые...

23 10 2019 16:46:18

Восстановить контроль в C#

Изменение родительского элемента управления легко. Просто установите его свойство Parent в элемент управления, который должен содержать его. В этом примере...

22 10 2019 11:22:35

Сделайте отображение изображений ComboBox с текстом в C#

Пример Сделать цветной дисплей ComboBox или изображения на C# показывают, как сделать созданный владельцем ComboBox, который отображает либо серию цветовых...

21 10 2019 19:41:51

Как быстро научиться программировать: 7 советов

Как быстро научиться программировать? Чтобы облегчить обучение программированию и хорошо усвоить основы, необходимо правильно выбрать темп работы и использовать некоторые способы....

20 10 2019 5:35:36

Что такое ключевое слово instanceof в Java?

Java instanceof - это ключевое слово. Это двоичный оператор, используемый для проверки, является ли объект (экземпляр) подтипом данного типа. Он возвращает...

19 10 2019 5:20:48

Как использовать анонимные методы в C#

Мой предыдущий пост Использование предопределенные типы делегатов Action, Func и EventHandler в C# объясняют, как использовать предопределенные общие типы...

18 10 2019 12:58:44

Преобразование Float в String в C#

В этой статье мы напишем программу в C# для преобразования Float в String с использованием метода float.ToString(). Вывод: 37,33 49,29 Источник: http://www...

17 10 2019 13:13:45

Инициализация элементов управления DataGridView с объектами в C#

В этом примере показано, как легко инициализировать элементы управления DataGridView, чтобы отобразить свойства элементов. В этом примере используется след...

16 10 2019 11:41:34

Преимущества и недостатки JavaScript

Как и все языки компьютера, JavaScript имеет определенные преимущества и недостатки. Преимущества JavaScript: Быстрый для конечного пользователя: сценарий...

15 10 2019 17:38:57

Список уникальных слов в текстовом файле в C#

В этом примере используются регулярные выражения и LINQ для отображения уникальных слов, содержащихся в текстовом файле на C#. Когда вы вводите имя файла и...

14 10 2019 21:21:46

Преобразовать строку в число в Java? String to Int

Преобразование String в int или Integer - очень распространенная операция в Java. Существует несколько простых способов сделать это преобразование. Часто и...

13 10 2019 6:48:29

Петля над массивом неизвестного измерения в C#

Предыдущий пост Loop над записями в массиве неизвестной длины в C# объясняет, как перебирать записи в одномерном или двумерном массиве, но что вы будете де...

12 10 2019 5:29:22

Программирование для Android 5 (Денис Колисниченко)

Рассмотрены все основные аспекты создания приложений для платформы Android 5 (API 21): установка необходимого программного обеспечения (JDK, Eclipse и Andr...

11 10 2019 5:19:39

Современные языки программирования: список 2018

Список современных языков программирования на 2018 год. Чтобы определиться с конкретным языком программирования для изучения (одним или несколькими) нужно для начала ответить себе на вопрос:...

10 10 2019 19:48:17

Прочтите CSV-файл в массив в C#

Следующий метод LoadCsv считывает CSV-файл в двумерный массив строк. В коде используется System.IO.File.ReadAllText, чтобы прочитать содержимое файла в стр...

09 10 2019 8:15:40

Загрузка статического и динамического класса в Java

Концепция загрузчика классов, один из краеугольных камней виртуальной машины Java (JVM). В нем описывается поведение преобразования именованного класса в б...

08 10 2019 13:28:18

Стоимость автомобиля, включая долгосрочный пробег в C#

В этом примере вычисляются общие затраты на автомобиль, включая использование газа. Некоторые автомобили, которые кажутся менее дорогими, чем другие, в кон...

07 10 2019 20:39:42

Использование EXIF для ориентации изображения на C#

Пример Прочитайте ориентацию EXIF файла изображения данные на C# показывают, как читать информацию о ориентации EXIF с изображения. Используя эту информаци...

06 10 2019 23:56:15


Parse error: syntax error, unexpected ',' in /home/users/9/9161484547/domains/flash-mx.ru/lessons/926.php on line 69