Библиотека шарписта | C#, F#, .NET, ASP.NET
Все самое полезное для C#-разработчика в одном канале. Наши курсы: https://clc.to/y3LDtw По рекламе: @tproger_sales_bot Для обратной связи: @proglibrary_feeedback_bot РКН: https://gosuslugi.ru/snet/67a5c81cdc130259d5b7fead
Show more📈 Analytical overview of Telegram channel Библиотека шарписта | C#, F#, .NET, ASP.NET
Channel Библиотека шарписта | C#, F#, .NET, ASP.NET (@csharpproglib) in the Russian language segment is an active participant. Currently, the community unites 21 513 subscribers, ranking 6 148 in the Technologies & Applications category and 30 426 in the Russia region.
📊 Audience metrics and dynamics
Since its creation on невідомо, the project has demonstrated rapid growth, gathering an audience of 21 513 subscribers.
According to the latest data from 01 November, 2026, the channel demonstrates stable activity. Although there has been a change in the number of participants by -121 over the last 30 days and by -4 over the last 24 hours, overall reach remains high.
- Verification status: Not verified
- Engagement rate (ER): The average audience engagement rate is 15.27%. Within the first 24 hours after publication, content typically collects 7.63% reactions from the total number of subscribers.
- Post reach: On average, each post receives 3 286 views. Within the first day, a publication typically gains 1 641 views.
- Reactions and interaction: The audience actively supports content: the average number of reactions per post is 4.
- Thematic interests: Content is focused on key topics such as .net, шарписта, навигация, await, string.
📝 Description and content policy
The author describes the resource as a platform for expressing subjective opinions:
“Все самое полезное для C#-разработчика в одном канале.
Наши курсы: https://clc.to/y3LDtw
По рекламе: @tproger_sales_bot
Для обратной связи: @proglibrary_feeedback_bot
РКН: https://gosuslugi.ru/snet/67a5c81cdc130259d5b7fead”
Thanks to the high frequency of updates (latest data received on 02 November, 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.
IEnumerable<T> и IQueryable<T>
✓ Фильтровать (Where()) данные как можно раньше в цепочке вызовов.
✓ Извлекать (Select()) только нужные поля, а не всю сущность.
✓ Использовать Any() вместо Count() > 0 для проверки наличия элементов.
✓ Избегать многократных проходов по коллекции (повторных .Where(), .Select())
✓ Знать разницу между отложенным и немедленным выполнением.
➖ Работа с Where, Select, FirstOrDefault
✓ Не использовать Where().FirstOrDefault() – просто FirstOrDefault().
✓ Вызывать Where() перед Select(), а не наоборот.
✓ Использовать FirstOrDefault(predicate), если проверяется только одно значение.
➖ Nullable
✓ Использовать ?? для значений, которые могут быть null.
✓ Использовать DefaultIfEmpty() при GroupBy().
➖ Избегание дублирующих данных
✓ Использовать Distinct() для уникальных значений.
✓ Использовать Union() для объединения без дубликатов.
✓ Использовать Except() и Intersect() для разницы между коллекциями.
Помните, что LINQ — это не просто удобство, а инструмент, требующий понимания его тонкостей.
🐸Библиотека шарписта #бустgit log --oneline --graph --all --decorate, можно настроить удобный git lg, который покажет красивую и наглядную историю коммитов:
Вот как это сделать:
git config --global alias.lg "log --oneline --graph --all --decorate"
Теперь git lg покажет красивую историю коммитов.
💬 Пользуетесь алиасами? Какие вводите чаще всего? Делитесь в комментариях 👇
🐸Библиотека шарписта #бустeventHandler.SomeEvent -= MyEventHandler;2️⃣ Освобождайте неуправляемые ресурсы Подключения к БД, файлы и сокеты могут не освобождаться автоматически. ✅ Решение: Реализуйте
IDisposable
class MyClass : IDisposable {
public void Dispose() {
// Очистка ресурсов
}
}
Используйте using, чтобы автоматически вызвать Dispose():
using (var obj = new MyClass()) { /* работа с объектом */ }
3️⃣ Следите за статическими ссылками
Статические переменные хранят объекты в памяти на весь срок работы приложения.
✅ Решение: Используйте WeakReference, если объект не должен жить вечно:
WeakReference<MyObject> weakRef = new WeakReference<MyObject>(new MyObject());
4️⃣ Разрывайте циклические ссылки
Если два объекта ссылаются друг на друга, сборщик мусора не сможет их удалить.
✅ Решение: используйте WeakReference или GC.Collect() .
🐸Библиотека шарписта #бустПредставь, что ты любишь есть печенье, и оно хранится на кухне в большой банке. Каждый раз, когда тебе хочется печенье, ты бегаешь на кухню, открываешь банку, берёшь одно и возвращаешься. Но это долго и утомительно! А теперь представь, что ты положил тарелочку с печеньем рядом с собой. Теперь, когда ты хочешь ещё одно печенье, тебе не нужно бежать на кухню – оно уже рядом!В понедельник выберем самое креативное объяснение. Ждём ваши варианты в комментариях 👇 🐸Библиотека шарписта #междусобойчик
dotnet new install Microsoft.Extensions.AI.Templates
🤔 Уже появились идеи как это использовать?
🐸Библиотека шарписта #бустIAsyncEnumerable<T> — это асинхронный аналог IEnumerable<T>. Вместо обычного foreach можно использовать await foreach, а для получения элементов асинхронно yield return вместе с async и await.
Рассмотрим на примере. C IAsyncEnumerable данные обрабатываются по мере поступления, то есть не нужно ждать загрузки всех данных в память:
public async IAsyncEnumerable<int> GetNumbersAsync()
{
for (int i = 1; i <= 5; i++)
{
await Task.Delay(500);
// Имитируем задержку (асинхронно!)
yield return i;
// Возвращаем элемент сразу, не дожидаясь всех остальных
}
}
await foreach (var number in GetNumbersAsync())
{
Console.WriteLine(number);
// Выводит числа по мере их поступления!
}
IAsyncEnumerable<T> – это как потоковое видео, а IEnumerable<T> — это скачивание всего фильма перед просмотром.
🐸Библиотека шарписта #буст