uk
Feedback
C# (C Sharp) programming

C# (C Sharp) programming

Відкрити в Telegram

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

Показати більше

📈 Аналітичний огляд Telegram-каналу C# (C Sharp) programming

Канал C# (C Sharp) programming (@csharp_ci) у мовному сегменті Російська є активним учасником. На даний момент спільнота об'єднує 18 307 підписників, посідаючи 7 335 місце в категорії Технології та додатки та 36 870 місце у регіоні Росія.

📊 Показники аудиторії та динаміка

З моменту свого створення невідомо, проект продемонстрував стрімке зростання, зібравши аудиторію у 18 307 підписників.

За останніми даними від 15 червня, 2026, канал демонструє стабільну активність. Хоча за останні 30 днів спостерігається зміна кількості учасників на -14, а за останні 24 години на 0, загальне охоплення залишається високим.

  • Статус верифікації: Не верифікований
  • Рівень залученості (ER): Середній показник залученості аудиторії становить 19.46%. Протягом перших 24 годин після публікації контент зазвичай збирає 7.27% реакцій від загальної кількості підписників.
  • Охоплення публікацій: В середньому кожен допис отримує 3 563 переглядів. Протягом першої доби публікація в середньому набирає 1 331 переглядів.
  • Реакції та взаємодія: Аудиторія активно підтримує контент: середня кількість реакцій на один пост – 0.
  • Тематичні інтереси: Контент зосереджений навколо ключових тем, таких як .net, api, логика, архитектура, string.

📝 Опис та контентна політика

Автор описує ресурс як майданчик для висловлення суб'єктивної думки:
По всем вопросам- @notxxx1 Реестр РКН: https://clck.ru/3Fk3kb #VRHSZ

Завдяки високій частоті оновлень (останні дані отримано 16 червня, 2026), канал підтримує актуальність та високий рівень охоплення публікацій. Аналітика показує, що аудиторія активно взаємодіє з контентом, що робить його важливою точкою впливу в категорії Технології та додатки.

18 307
Підписники
Немає даних24 години
+87 днів
-1430 день
Архів дописів
Задача. Слияние двух бинарных деревьев Сложность: Лёгкая Условие задачи: Даны два бинарных дерева, необходимо осуществить их
Задача. Слияние двух бинарных деревьев Сложность: Лёгкая Условие задачи: Даны два бинарных дерева, необходимо осуществить их наложение друг на друга и вывод результатов в новом дереве. Примечание: Наложение представляет из себя суммирование соответствующих значений из узлов двух деревьев. Пример: Ввод: 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ć