Группа dotnetways.com ВКонтакте Подписка на RSS
Первое практическое руководство .NET разработчика на языке C# (beta)

Последние # рецепты и практики ↓

Последние Q&A подсказки ↓

Последние материалы по .NET C# ↓

C# Dictionary: улучшение производительности

TryGetValue для получение значения Используйте метод TryGetValue для получения значения из словаря вместо метода ContainsKey в блоке if и последующим обращением к коллекции по ключу. Это улучшит скорость вашего кода на 25%. Правильно: string dictionaryValue; if (dictionary.TryGetValue(key, out dictionaryValue)) { // значение получили, выполняем некоторую логику … } Неправильно: if (dictionary.ContainsKey(key)) // Первое обращение — [...]

C# Dictionary сортировка

С сортировкой коллекции Dictionary трудности возникают чаще, чем с другими коллекциями .NET. Во многом это объясняется тем, что сортировка может понадобиться как для ключей, так и значений словаря. В этой главе мы рассмотрим различные методы сортировки словарей, а так же сравним их между собой. Реклама Сортировка Dictionary по ключам Прямая сортировка У нас есть словарь, [...]

C#: динамические массивы

Динамическим называют массив, который способен изменять свои размеры при добавлении и удалении элементов, другими словами — динамически выделять дополнительную память для хранения новых элементов и освобождать ее при удалении. Как известно стандартные массивы в C# являются immutable (неизменными), их размеры жестко задаются при инициализации объекта массива. Популярные практики Существует две основные практики использования динамических массивов [...]

C# двумерные массивы

Не всегда данные можно вместить в обычный массив. Поэтому существуют и широко применяются другие структуры данные. Язык C# включает полезную разновидность массивов — двумерные массивы. Принцип работы с такими массивами идентичен принципу работы стандартным одномерным массивом. Обращение к элементам происходит так же по индексу, только теперь используется уже два индекса. Реклама Пример объявления Ниже рассмотрен [...]

Ассоциативные массивы в C#

На платформе .NET ассоциативный массив реализуется через класс Dictionary (словарь) или Hashtable. Эта коллекция не имеет ничего общего с классическим массивом C#. Реклама Пример ассоциативного массива Правильный пример Если мы заранее знаем какой тип данных будет хранить наш ассоциативный массив, то следует использовать словарь Dictionary с заданными типами ключей и значений, что позволит ускорить выполнения [...]

C#: Stack (стэк)

Стэк (Stack) — это коллекция .NET, работающая по принципу LIFO (последний пришел — первый вышел). Это крайне полезная коллекция при разработке рекурсивных алгоритмов или парсеров (например, парсер html/xml дерева). Стэк является generic типом, то есть обобщенным типом. Это значит, что коллекция одинаково хорошо работает с элементами любого типа, будь то числа, строки или объекты. Реклама [...]

C#: Dictionary (словарь)

Словарь (Dictionary) хранит элементы в формате ключ-значение. Это обеспечивает его основное преимущество — быстрый поиск значения по заданному ключу. Ключом может выступать число, строка или любой другой объект. Реклама Быстрый старт Ниже приведен простой практический пример. У нас есть некоторые города и есть страны. Нам нужно по названию города получить страну. Для этого мы используем [...]

C#: Наследование классов, пример

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

C#: Классы, ключевое слово this

Если вы до сих пор не понимаете что такое ключевое this, то вам можно только посочувствовать. Прочтите эту статью, чтобы исправить это небольшое недоразумение.

C#: Деструктор класса, пример

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

C#: Конструктор класса, пример

Конструктор — это гарант того, чтобы важные параметры будут переданы и установлены до создания и использования экземпляра класса. Умение правильно использовать конструкторы очень важно для разработки качественных программ.

C#: Класс

Глава учебника .NET, посвященная основам работы с классами на языке C#. Статья затрагивает объявление классов, конструкторы, деструкторы, использование ключевого слово this и рассматривает наследование классов на элементарных понятных примерах.

C# Как переименовать файл?

Для того,чтобы переименовать файл используйте статический метод Copy класса File. Этот метод сначала копирует файл в указанное место, а затем удаляет оригинал. Для использования метода необходимо подключить пространство имен using System.IO. Если файл с указанным новым именем уже существует, то будет выброшено исключение. Если файл, который необходимо переименовать не существует — будет выброшено исключение. Так [...]

Как получить словарь Dictionary, содержащий свойства и значения свойств объекта?

Это можно сделать, достаточно просто, с помощью методов Reflection. Конвертируем анонимный объект в словарь Dictionary, ключи которого будут являться названиями свойств (типа string), а значения словаря (типа object), равные значениям свойств объекта. // Некий объект var myObject = new {name = "Бурашка", count = 5, isTrue = true}; Dictionary<string, object> result = myObject .GetType() // [...]

C#: Статический класс, пример

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

Как включить лямбда выражения для метода include в EntityFramework?

Для того, чтобы использовать метод include с поддержкой лямбда-выражений в EntityFramework, необходимо подключить пространство имен System.Data.Entity. using System.Data.Entity; context.Users.Include(x => x.Posts); вместо context.Users.Include("Posts"); Это не является очевидным, потому что метод include с поддержкой лямбда-выражений является методом-расширением (extension method) и возможность его использования автоматически не определяется даже такими инструментами как ReSharper.