en
Feedback
C# (C Sharp) programming

C# (C Sharp) programming

Open in Telegram

По всем вопросам- @notxxx1 Реестр РКН: https://clck.ru/3Fk3kb #VRHSZ

Show more

📈 Analytical overview of Telegram channel C# (C Sharp) programming

Channel C# (C Sharp) programming (@csharp_ci) in the Russian language segment is an active participant. Currently, the community unites 18 307 subscribers, ranking 7 335 in the Technologies & Applications category and 36 870 in the Russia region.

📊 Audience metrics and dynamics

Since its creation on невідомо, the project has demonstrated rapid growth, gathering an audience of 18 307 subscribers.

According to the latest data from 15 June, 2026, the channel demonstrates stable activity. Although there has been a change in the number of participants by -14 over the last 30 days and by 0 over the last 24 hours, overall reach remains high.

  • Verification status: Not verified
  • Engagement rate (ER): The average audience engagement rate is 19.46%. Within the first 24 hours after publication, content typically collects 7.27% reactions from the total number of subscribers.
  • Post reach: On average, each post receives 3 563 views. Within the first day, a publication typically gains 1 331 views.
  • Reactions and interaction: The audience actively supports content: the average number of reactions per post is 0.
  • Thematic interests: Content is focused on key topics such as .net, api, логика, архитектура, string.

📝 Description and content policy

The author describes the resource as a platform for expressing subjective opinions:
По всем вопросам- @notxxx1 Реестр РКН: https://clck.ru/3Fk3kb #VRHSZ

Thanks to the high frequency of updates (latest data received on 16 June, 2026), the channel maintains relevance and a high level of publication reach. Analytics show that the audience actively interacts with content, making it an important point of influence in the Technologies & Applications category.

18 307
Subscribers
No data24 hours
+87 days
-1430 days
Posts Archive
Задача. Слияние двух бинарных деревьев Сложность: Лёгкая Условие задачи: Даны два бинарных дерева, необходимо осуществить их
Задача. Слияние двух бинарных деревьев Сложность: Лёгкая Условие задачи: Даны два бинарных дерева, необходимо осуществить их наложение друг на друга и вывод результатов в новом дереве. Примечание: Наложение представляет из себя суммирование соответствующих значений из узлов двух деревьев. Пример: Ввод: root1 = [1,3,2,5], root2 = [2,1,3,null,4,null,7] Вывод:[3,4,5,5,4,null,7] Ввод: root1 = [1], root2 = [1,2] Вывод: [2,2] * Определение для узла двоичного дерева. * public class TreeNode { * public int val; * public TreeNode left; * public TreeNode right; * public TreeNode(int val=0, TreeNode left=null, TreeNode right=null) { * this.val = val; * this.left = left; * this.right = right; * } * } */ public class Solution { public TreeNode MergeTrees(TreeNode root1, TreeNode root2) { if (root1 == null & root2 == null) return null; if (root1 == null) return root2; if (root2 == null) return root1; var left = MergeTrees(root1.left, root2.left); var right = MergeTrees(root1.right, root2.right); if (root1.left != left) root1.left = left; if (root1.right != right) root1.right = right; root1.val += root2.val; return root1; } } Пишите свое мнение в комментариях👇 @csharp_ci

👩‍💻Как разрабатывать веб-сервисы на C# быстрее? Узнайте на бесплатном вебинаре «ASP NET Core - подготовка и запуск простого
👩‍💻Как разрабатывать веб-сервисы на C# быстрее? Узнайте на бесплатном вебинаре «ASP NET Core - подготовка и запуск простого веб-сервиса»: регистрация На уроке мы: — Создадим базовый web-api для сервиса; — Разработаем контроллер и настроим маршрутизацию точек доступа; — Подключим источник данных; — Познакомимся с инструментами ручного тестирования сервиса и моделями развертывания приложения. Спикером выступит Антон Герасименко, тимлид и .NET Developer. Вебинар точно будет полезен C#-разработчикам с опытом от 2 лет, которые хотят углубиться в создание web-приложений. 👉Для регистрации пройдите вступительный тест: пройти тест на сайте

⚜️ArchUnitNET ArchUnitNET - это бесплатная, простая библиотека для проверки архитектуры кода на C#. ArchUnitNET это форк http
⚜️ArchUnitNET ArchUnitNET - это бесплатная, простая библиотека для проверки архитектуры кода на C#. ArchUnitNET это форк https://www.archunit.org/ для Java. PS> Install-Package ArchUnitNETGithubДокументация @csharp_ci

🖥 Lists & enumerables Продолжаем говорить о Linq. Библиотека Linq очень полезна для написания быстрых, однострочных функций, приведем несколько примеров с кодом: ▪Суммирование всех чисел в диапазоне: using System; using System.Linq; public class Program { public static void Main() { Console.WriteLine(Enumerable.Range(1, 100).Sum()); } } ▪Применение функции ко всем числам в списке: using System; using System.Linq; public class Program { private static int Square(int n) => n * n; public static void Main() { int[] arr = { 1, 2, 3, 4 }; // direct anonymous function int[] arr2 = arr.Select(n => n * n).ToArray(); // using another method int[] arr3 = arr.Select(Square).ToArray(); foreach (int n in arr2) Console.WriteLine(n); // output: 1, 4, 9, 16 foreach (int n in arr3) Console.WriteLine(n); // output: 1, 4, 9, 16 } } ▪Фильтрация списка номеров: using System; using System.Linq; public class Program { private static bool IsValid(int n) => n % 2 == 0 && n > 4; public static void Main() { int[] arr = { 1, 2, 3, 4, 5, 6, 7, 8, 9 }; // direct anonymous function int[] arr2 = arr.Where(n => n % 2 == 0 && n > 4).ToArray(); // using another method int[] arr3 = arr.Where(IsValid).ToArray(); foreach (int n in arr2) Console.WriteLine(n); // output: 6, 8 foreach (int n in arr3) Console.WriteLine(n); // output: 6, 8 } } ▪Нахождение минимального/максимального значения в списке: using System; using System.Linq; public class Program { public static void Main() { int[] arr = { 4, 7, 2, 1, 3, 6, 9, 8, 0, 5 }; Console.WriteLine(Enumerable.Min(arr)); // output: 0 Console.WriteLine(Enumerable.Max(arr)); // output: 9 } } @csharp_ci

System Design — это одна из ключевых компетенций любого опытного разработчика. Хотите улучшить свои навыки в разработке на Go
System Design — это одна из ключевых компетенций любого опытного разработчика. Хотите улучшить свои навыки в разработке на Golang? Приглашаем вас 🗓 3 мая в 20:00 на открытый урок «System Design» в OTUS. На уроке спроектируем WhatsApp, а также познакомимся с типичными примерами проектирования большинства популярных мессенджеров, посмотрим на типичные ошибки, узнаем некоторые тонкости, о которых редко задумываются. Спикером выступит 👨‍💻 Владимир Балун, ведущий разработчик в Ozon. Сейчас Владимир занимается разработкой высоконагруженных сервисов Observability platform. 👉 Пройдите вступительный тест, чтобы участвовать — https://otus.pw/TPK4/ Вебинар приурочен к старту онлайн-курса «Golang Developer. Professional» в OTUS. Курс доступен в рассрочку. Реклама. Информация о рекламодателе на сайте www.otus.ru.

🖥 Задача с leetcode. Max Area of Island Максимальная площадь острова Сложность: Средняя Условие задачи: Условие задачи: Дан двумерный массив размера m x n. "1" отвечает за сушу, "0" - за океан. Необходимо опеределить максмимальную площадь острова из островов, расположенных на карте. Островом считается территория, образованная из "1", расположенных сверху, справа, снизу и слева относительно друг друга. Пример: Ввод: grid = [[0,0,1,0,0,0,0,1,0,0,0,0,0],[0,0,0,0,0,0,0,1,1,1,0,0,0],[0,1,1,0,1,0,0,0,0,0,0,0,0],[0,1,0,0,1,1,0,0,1,0,1,0,0],[0,1,0,0,1,1,0,0,1,1,1,0,0],[0,0,0,0,0,0,0,0,0,0,1,0,0],[0,0,0,0,0,0,0,1,1,1,0,0,0],[0,0,0,0,0,0,0,1,1,0,0,0,0]] Вывод: 6 Ввод: grid = [[0,0,0,0,0,0,0,0]] Вывод: 0 Решение public class Solution { public int MaxAreaOfIsland(int[][] grid) { var best = 0; var travelled = new bool[grid.Length][]; for (var i = 0; i < grid.Length; i++) travelled[i] = new bool[grid[i].Length]; for (var i = 0; i < grid.Length; i++) for (var j = 0; j < grid[0].Length; j++) if (grid[i][j] == 1 && !travelled[i][j]) { var q = ExploreIsland(grid, i, j, travelled); best = Math.Max(best, q); } return best; } private int ExploreIsland(int[][] grid, int i, int j, bool[][] travelled) { if (i < 0 || j < 0 || i >= travelled.Length || j >= travelled[0].Length) return 0; if (grid[i][j] == 0 || travelled[i][j]) return 0; travelled[i][j] = true; var north = ExploreIsland(grid, i + 1, j, travelled); var west = ExploreIsland(grid, i, j - 1, travelled); var east = ExploreIsland(grid, i, j + 1, travelled); var south = ExploreIsland(grid, i - 1, j, travelled); return north + west + east + south + 1; } } Временная сложность : O(n^2*m^2) Пространственная сложность: O(n∗m) Пишите свое решение в комментариях👇 @cpluscsharp

Книга дня. Конкурентность в C#. Асинхронное, параллельное и многопоточное программирование Автор: Стивен Клири Автор поможет
Книга дня. Конкурентность в C#. Асинхронное, параллельное и многопоточное программирование Автор: Стивен Клири Автор поможет разобраться с трудностями и избежать подводных камней, возникающих при решении реальных задач. В вашем распоряжении 85 рецептов работы с .NET и C# 8.0, необходимых для параллельной обработки и асинхронного программирования. #c_Sharp 📚Книга @cpluscsharp

Как прокачать навыки в С++, если вы уже знаете основы языка Разработчикам на С++, которые хотят прокачать навыки или ищут точ
Как прокачать навыки в С++, если вы уже знаете основы языка Разработчикам на С++, которые хотят прокачать навыки или ищут точки роста в карьере, выйти на новый этап развития поможет активное самообучение: закрепление теории и отработка знаний на практике. Вот только полагаться лучше не на случайные интернет-источники, а на материалы лидеров индустрии. Советуем обратить внимание на бесплатный хендбук Академии Яндекса. Этот онлайн-учебник по С++ был создан специально для того, чтобы начинающие специалисты могли самостоятельно освоить новые темы, а более опытные — освежить знания. В хендбуке есть как теория, так и задачи с автопроверкой. Сохраняйте ссылку и погружайтесь в бесплатные материалы по С++: https://clck.ru/33t57f

Подборка Топ-10 поезныйх библиотек для разработчиков .NET 1) Newtonsoft.Json: Эта библиотека широко используется для работы с данными JSON в приложениях .NET. Newtonsoft.Json обеспечивает высокую производительность и простоту использования, что делает ее отличным решением для сериализации и десериализации данных JSON. 2) Dapper: Это простой и эффективный ORM, который обеспечивает высокую производительность и гибкость при работе с реляционными базами данных. Dapper прост в использовании и предлагает быстрый и эффективный способ взаимодействия с базами данных. 3) Polly: Polly - это библиотека, которая помогает легко обрабатывать ошибки в приложениях .NET. 4) AutoMapper: Эта библиотека .NET Core упрощает сопоставление объектов с объектами путем автоматического сопоставления свойств одного объекта с другим. Эта библиотека особенно полезна в больших проектах, где сопоставление может занять много времени и стать утомительным. 5) FluentValidation: Это библиотека, которая предоставляет API для построения правил валидации. Она позволяет легко создавать сложную логику проверки и поддерживает широкий спектр скриптов валидации, что делает ее полезным инструментом для обеспечения целостности данных в ваших приложениях. 6) Serilog: Эта библиотека представляет собой структурированную библиотеку протоколирования, которая упрощает сбор и анализ журналов вашего приложения. Она обеспечивает гибкость и расширяемость и поддерживает различные источники для хранения журналов, включая Elasticsearch, SQL Server и другие. 7) Swashbuckle.AspNetCore.Swagger: Эта библиотека генерирует документацию OpenAPI для вашего ASP.NET Core Web API. Она облегчает понимание функциональности вашего API и позволяет легко генерировать код для вашего API. 😍 NLog: Это бесплатная платформа протоколирования для .NET с широкими возможностями маршрутизации и управления журналами. 9) Moq4: Это популярный фреймворк mocking для приложений .NET. Она позволяет легко создавать объекты для модульного тестирования. 10) StackExchange.Redis: Это библиотека для работы с базами данных Redis в приложениях .NET. Она предоставляет простой и эффективный способ взаимодействия с Redis, а также обеспечивает высокую производительность и масштабируемость. @csharp_ci

🖥 Dynamic Language Runtime DLR в C#. Ключевое слово dynamic Хотя C# относится к статически типизированным языкам, в последних версиях языка были добавлены некоторые динамические возможности. Так, начиная с .NET 4.0 была добавлена новая функциональность под названием DLR (Dynamic Language Runtime). DLR представляет среду выполнения динамических языков, например, таких языков как IronPython и IronRuby. Чтобы понять значение данного нововведение, нужно осознавать разичие между языками со статической и динамической типизицией. В языках со статической типизацией выявление всех типов и их членов - свойств и методов происходит на этапе компиляции. А в динамических языках системе ничего не известно о свойствах и методах типов вплоть до выполнения. Благодаря этой среде DLR C# может создавать динамические объекты, члены которых выявляются на этапе выполнения программы, и использовать их вместе с традиционными объектами со статической типизацией. Ключевым моментом использования DLR в C# является применение типов dynamic. Это ключевое слово позволяет опустить проверку типов во время компиляции. Кроме того, объекты, объявленные как dynamic, могут в течение работы программы менять свой тип. Например: dynamic obj = 3; // здесь obj - целочисленное int Console.WriteLine(obj); // 3 obj = "Hello world"; // obj - строка Console.WriteLine(obj); // Hello world obj = new Person("Tom", 37); // obj - объект Person Console.WriteLine(obj); // Person { Name = Tom, Age = 37 } record class Person(string Name, int Age); Несмотря на то, что переменная x меняет тип своего значения несколько раз, данный код будет нормально работать. В этом использование типов dynamic отличается от применения ключевого слова var. Для переменной, объявленной с помощью ключевого слова var, тип выводится во время компиляции и затем во время выполнения больше не меняется. Также можно найти общее между использованием dynamic и типом object. Если в предыдущем примере мы заменим dynamic на object: object x = 3;, то результат будет тот же. Однако и тут есть различия. Например: object obj = 24; dynamic dyn = 24; obj += 4; // так нельзя dyn += 4; // а так можно На строке obj += 4; мы увидим ошибку, так как операция += не может быть применена к типам object и int. С переменной, объявленной как dynamic, это пройдет, так как ее тип будет известен только во время выполнения. Еще одна отличительная особенность использования dynamic состоит в том, что это ключевое слово применяется не только к переменным, но и к свойствам и методам. Например: class Person { public string Name { get;} public dynamic Age { get; set; } public Person(string name, dynamic age) { Name = name; Age = age; } // выводим зарплату в зависимости от переданного формата public dynamic GetSalary(dynamic value, string format) { if (format == "string") return $"{value} euro"; else if (format == "int") return value; else return 0.0; } public override string ToString() => $"Name: {Name} Age: {Age}"; } В классе Person определено динамическое свойство Age, поэтому при задании значения этому свойству мы можем написать и person.Age=22, и person.Age="twenty-two". Оба варианта будут допустимыми. А через параметр age в конструкторе этому свойству можно передать любое значение. Также есть метод GetSalary, который возвращает значение dynamic. Например, в зависимости от параметра мы можем вернуть или строковое представление суммы дохода или численное. Также метод принимает dynamic в качестве параметра. Таким образом, мы можем передать в качестве значения дохода как целое, так и дробное число или строку. Посмотрим на конкретное применение: dynamic tom = new Person("Tom", 22); Console.WriteLine(tom); Console.WriteLine(tom.GetSalary(28, "int")); dynamic bob = new Person("Bob", "twenty-two"); Console.WriteLine(bob); Console.WriteLine(bob.GetSalary("twenty-eight", "string")); Консольный вывод программы: Name: Tom Age: 22 28 Name: Bob Age: twenty-two twenty-eight euro @csharp_ci

Техническое собеседование С# разработчика в прямом эфире! 📆 Дата: 21 апреля 👉 Тема: Как пройти техническое собеседование на
Техническое собеседование С# разработчика в прямом эфире! 📆 Дата: 21 апреля 👉 Тема: Как пройти техническое собеседование на С# разработчика и получить оффер. Решаем реальные задания в прямом эфире Мы проведем демо-собеседование, на котором разберем реальные задачи, которые просят решить нанимающие менеджеры на интервью, а также вы получите полезные рекомендации по прохождению технического интервью и узнаете ответы на актуальные вопросы, которые задают на собеседовании. Действующие герои вебинара: — Нанимающий менеджер: Антон Герасименко, Lead Developer в компании «Интелеком Лайн». — Кандидат: Артур Хисматуллин, C# разработчик. 👉 Для участия нужно зарегистрироваться и пройти тест https://otus.pw/JmWU/ 📌 Открытый урок пройдет в рамках онлайн-курса «C# Developer. Professional» в OTUS. Реклама. Информация о рекламодателе на сайте www.otus.ru

Что выведет код ?
Anonymous voting

⚡️ Testcontainers для .NET Проект для поддержки тестов с одноразовыми экземплярами Docker-контейнеров для всех совместимых ве
⚡️ Testcontainers для .NET Проект для поддержки тестов с одноразовыми экземплярами Docker-контейнеров для всех совместимых версий .NET Standard. Testcontainers построен на основе API .NET Docker и обеспечивает упрощенную реализацию для поддержки вашей тестовой среды. 🖥 Github @csharp_ci

Готовы освоить Best Practice по разработке микросервисной архитектуры и сложных отказоустойчивых систем? Сделайте первые шаги
Готовы освоить Best Practice по разработке микросервисной архитектуры и сложных отказоустойчивых систем? Сделайте первые шаги на открытом уроке «Модульные монолиты и DDD» 🗓 17 апреля в 20:00 мск в OTUS. На занятии вместе со Станиславом Щетинниковым, директором разработки с 10-летним опытом, рассмотрим основные паттерны для построения и написания модульных монолитов. Особое внимание будет уделено паттернам DDD. 👨‍💻 Занятие будет полезно для back-end разработчикам, тимлидам и администраторам. 👉 Для регистрации на урок пройдите вступительное тестирование — https://otus.pw/5SwK/ А если вам понравятся бесплатные уроки, продолжить обучение можно будет уже на курсе «Microservice architecture» от OTUS. Оплата курса возможна в рассрочку.

Цикл статей для тех, кто заботится об экономии наносекунд и оптимизации на уровне IL-кода. Кто знает, может вы работаете в хайлоад проектах или в геймдеве. 🚀 Array: for/foreach или unsafe 🚀 Dictionary<int, T>: очень специальный 🚀 Inline и throw

Вакансии для разработчиков C# в Ozon Tech 🔔 ⏩Для кого: middle, senior и team lead ⏩Скилы, которые ждем: C# (.NetCore), MSSQL
Вакансии для разработчиков C# в Ozon Tech 🔔 ⏩Для кого: middle, senior и team lead ⏩Скилы, которые ждем: C# (.NetCore), MSSQL, PostgreSQL, разработка высоконагруженных real-time систем Решай интересные highload-задачи и применяй лучшие практики, чтобы миллионы пользователей могли совершать сотни тысяч заказов в день и получать их вовремя. ⏩Условия: удаленка, гибрид или офис (Россия, Казахстан) — выбирать только тебе Подробную информацию о вакансиях, включая задачи и условия, можно найти на сайте по ссылке: http://bit.ly/43uAQyo

🛠 Entity Framework Core Power Tools — инструмент для обратной разработки (reverse engineering), миграции и визуализация моде
🛠 Entity Framework Core Power Tools — инструмент для обратной разработки (reverse engineering), миграции и визуализация моделей для EF Core. Инструмент стремится снизить планку для начала работы с EF Core, предоставляя удобный UI с обратной разработкой существующей базы данных, созданием миграций и визуализацией вашей модели DbContext. 🖥 Github @csharp_ci1

Современные технологии на .NET: в Ozon идет набор на бесплатный курс для опытных С#-разработчиков Курс будут вести инженеры O
Современные технологии на .NET: в Ozon идет набор на бесплатный курс для опытных С#-разработчиков Курс будут вести инженеры Ozon: вебинары и воркшопы подготовлены разработчиками, которые каждый день строят современное e-com решение. После курса ты сможешь: 🔹Создавать и настраивать микросервисы на ASP.NET Core 🔹Эффективно работать с асинхронным кодом 🔹Проектировать сложные распределенные системы 🔹Создавать REST и gRPC API 🔹Оптимизировать SQL-запросы 🔹Работать с Kafka Как попасть на курс? Оставь заявку на сайте ➡️ 30 апреля пройди отборочный контест ➡️ попади в рейтинг лучших ➡️ развивайся под менторством экспертов Ozon. Регистрация на отборочный контест

#csharp #linq #tip by Milan Jovanović
#csharp #linq #tip by Milan Jovanović