
В этой статье приведен Benchmark и его результаты, которые оценивают скорость получения значений из коллекции Dictionary тремя способами: методом TryGetValue, методом ContainsKey и Try/Catch.

В этой статье приведен Benchmark и его результаты, которые оценивают скорость получения значений из коллекции Dictionary тремя способами: методом TryGetValue, методом ContainsKey и Try/Catch.

В этой статье приведен Benchmark и его результаты, которые оценивают затраты на упаковку/распаковку при использовании коллекции Dictionary .NET на языке C#.
В этой статье приведен Benchmark и его результаты, которые оценивают скорость получения значений из коллекции Dictionary тремя способами: методом TryGetValue, методом ContainsKey и Try/Catch.
В этой статье приведен Benchmark и его результаты, которые оценивают затраты на упаковку/распаковку при использовании коллекции Dictionary .NET на языке C#.
TryGetValue для получение значения Используйте метод TryGetValue для получения значения из словаря вместо метода ContainsKey в блоке if и последующим обращением к коллекции по ключу. Это улучшит скорость вашего кода на 25%. Правильно: string dictionaryValue; if (dictionary.TryGetValue(key, out dictionaryValue)) { // значение получили, выполняем некоторую логику … } Неправильно: if (dictionary.ContainsKey(key)) // Первое обращение — [...]
С сортировкой коллекции Dictionary трудности возникают чаще, чем с другими коллекциями .NET. Во многом это объясняется тем, что сортировка может понадобиться как для ключей, так и значений словаря. В этой главе мы рассмотрим различные методы сортировки словарей, а так же сравним их между собой. Реклама Сортировка Dictionary по ключам Прямая сортировка У нас есть словарь, [...]
Динамическим называют массив, который способен изменять свои размеры при добавлении и удалении элементов, другими словами — динамически выделять дополнительную память для хранения новых элементов и освобождать ее при удалении. Как известно стандартные массивы в C# являются immutable (неизменными), их размеры жестко задаются при инициализации объекта массива. Популярные практики Существует две основные практики использования динамических массивов [...]
Не всегда данные можно вместить в обычный массив. Поэтому существуют и широко применяются другие структуры данные. Язык C# включает полезную разновидность массивов — двумерные массивы. Принцип работы с такими массивами идентичен принципу работы стандартным одномерным массивом. Обращение к элементам происходит так же по индексу, только теперь используется уже два индекса. Реклама Пример объявления Ниже рассмотрен [...]
На платформе .NET ассоциативный массив реализуется через класс Dictionary (словарь) или Hashtable. Эта коллекция не имеет ничего общего с классическим массивом C#. Реклама Пример ассоциативного массива Правильный пример Если мы заранее знаем какой тип данных будет хранить наш ассоциативный массив, то следует использовать словарь Dictionary с заданными типами ключей и значений, что позволит ускорить выполнения [...]
Стэк (Stack) — это коллекция .NET, работающая по принципу LIFO (последний пришел — первый вышел). Это крайне полезная коллекция при разработке рекурсивных алгоритмов или парсеров (например, парсер html/xml дерева). Стэк является generic типом, то есть обобщенным типом. Это значит, что коллекция одинаково хорошо работает с элементами любого типа, будь то числа, строки или объекты. Реклама [...]
Словарь (Dictionary) хранит элементы в формате ключ-значение. Это обеспечивает его основное преимущество — быстрый поиск значения по заданному ключу. Ключом может выступать число, строка или любой другой объект. Реклама Быстрый старт Ниже приведен простой практический пример. У нас есть некоторые города и есть страны. Нам нужно по названию города получить страну. Для этого мы используем [...]
Более сложный пример использования классов.
Правильное использование наследования классов позволит вам сократить количество кода, которое вы пишите, и повысить эффективность вашего труда. В этой главе изложено все, что вам нужно знать о наследовании.
Если вы до сих пор не понимаете что такое ключевое this, то вам можно только посочувствовать. Прочтите эту статью, чтобы исправить это небольшое недоразумение.
Деструкторы не очень популярны в C#, вернее они совсем не популярны. Но если вы хотите расширить свой кругозор и когда-нибудь, решая сложную задачу, неожиданно вспомнить об их существовании, прочтите эту статью, все может пригодится.
Конструктор — это гарант того, чтобы важные параметры будут переданы и установлены до создания и использования экземпляра класса. Умение правильно использовать конструкторы очень важно для разработки качественных программ.
Глава учебника .NET, посвященная основам работы с классами на языке C#. Статья затрагивает объявление классов, конструкторы, деструкторы, использование ключевого слово this и рассматривает наследование классов на элементарных понятных примерах.
Практика реализация собственного провайдера сессий для ASP.NET (MVC) на примере провайдера для SQL Server с нестандартной структурой таблицы сессии.
Для того,чтобы переименовать файл используйте статический метод Copy класса File. Этот метод сначала копирует файл в указанное место, а затем удаляет оригинал. Для использования метода необходимо подключить пространство имен using System.IO. Если файл с указанным новым именем уже существует, то будет выброшено исключение. Если файл, который необходимо переименовать не существует — будет выброшено исключение. Так [...]
Это можно сделать, достаточно просто, с помощью методов Reflection. Конвертируем анонимный объект в словарь Dictionary, ключи которого будут являться названиями свойств (типа string), а значения словаря (типа object), равные значениям свойств объекта. // Некий объект var myObject = new {name = "Бурашка", count = 5, isTrue = true}; Dictionary<string, object> result = myObject .GetType() // [...]
Статические классы похожи на глобальные переменные и функции в процедурных языках программирования. Прочитайте эту статью, чтобы научится применять статические классы.
Для того, чтобы использовать метод include с поддержкой лямбда-выражений в EntityFramework, необходимо подключить пространство имен System.Data.Entity. using System.Data.Entity; context.Users.Include(x => x.Posts); вместо context.Users.Include("Posts"); Это не является очевидным, потому что метод include с поддержкой лямбда-выражений является методом-расширением (extension method) и возможность его использования автоматически не определяется даже такими инструментами как ReSharper.