C# (C Sharp) programming
18.7K subscribers
756 photos
38 videos
8 files
675 links
По всем вопросам- @haarrp

C# - обучающий канал Senior C# разработчика.

@ai_machinelearning_big_data - Machine learning

@itchannels_telegram - 🔥лучшие ит-каналы

@csharp_ci - C# академия

@pythonlbooks- книги📚

Реестр РКН: https://clck.ru/3Fk3kb
Download Telegram
🔧 Spectre.Console — .NET-библиотека, упрощающая создание красивых CLI-приложений. Проект вдохновлен Python-библиотекой Rich.

🖥 Github

@csharp_ci
Please open Telegram to view this post
VIEW IN TELEGRAM
🖥 Сортировки в C#: OrderBy.OrderBy или OrderBy.ThenBy?

Для сортировки коллекции по нескольким ключам используются вызовы OrderBy().OrderBy() или OrderBy().ThenBy(). Но в чём разница между ними?

— Разные поведения: для вызовов OrderBy().ThenBy() исполнение идёт по else-ветви, а OrderBy().OrderBy() — по then-ветви.
— Производительность: OrderBy().ThenBy() расходует меньше памяти и работает быстрее, поэтому лучше подойдёт при работе с большими объёмами данных.
— Эффективность: последовательность вызовов OrderBy().OrderBy() чаще приводит к ошибкам.

Подробнее об этих методах и их сравнение на примерах — в статье:

Читать

@csharp_ci
Please open Telegram to view this post
VIEW IN TELEGRAM
Полезные библиотеки, которые помогут при работе с исключениями на C#

Polly — библиотека, которая позволяет разработчикам свободно и потокобезопасно использовать политики Retry, Circuit Breaker, Timeout, Bulkhead Isolation, Rate-limiting и Fallback.

Xeption добавляет дополнительную информацию к Exception, что помогает при отладке. Для этого нужно просто добавить модель Xeption к Exception вашего проекта.

Ben.Demystifier помогает создать более простые и понятные stack-trace.

#c

@csharp_ci
Разработка веб-приложений с помощью .NET и Visual Studio: серия практических уроков

Этот проект из 6 частей, который поможет научиться создавать веб-приложения на C#. На примере создания простого сайта для пиццы автор объясняет Razor Page, API и Azure:

https://github.com/dotnet/intro-to-dotnet-web-dev

#c

@csharp_ci
.NET 8 уже в пути! Откройте для себя его новые возможности

Вы можете в это поверить? Такое ощущение, что только вчера мы были в восторге от .NET 7, и вот мы уже говорим о .NET 8! Время летит незаметно, когда готовится что-то потрясающее.

Но не бойтесь, Microsoft усердно работает над тем, чтобы предоставить нам новейшие и замечательные функции, которые мы рассмотрим в этой статье.

Так что сядьте поудобнее, расслабьтесь и давайте погрузимся во все новые захватывающие обновления, которые приготовили для нас в .NET 8.

📌 Читать

@csharp_ci
⚙️UniTask — библиотека, которая предоставляет эффективную интеграцию async/await для Unity без выделения ресурсов.

🖥 Github

@csharp_ci
Please open Telegram to view this post
VIEW IN TELEGRAM
Что будет выведено на консоль?
Anonymous Quiz
16%
False
26%
True
15%
NaN
43%
Возникнет ошибка
Octokit - GitHub API Client Library for .NET

Octokit - это клиентская библиотека, для .NET Framework 4.6 или выше и .NET Standard 2.0 и выше, которая обеспечивает простой способ взаимодействия с Github Api

🖥 Github

@csharp_ci
Please open Telegram to view this post
VIEW IN TELEGRAM
🖥 ArrayPool<T>: подводные камни

Автоматическая сборка мусора упрощает разработку программ, избавляя от необходимости отслеживать жизненный цикл объектов и удалять их вручную. Однако, чтобы сборщик мусора был полезным инструментом, а не главным врагом на пути к высокой производительности — иногда имеет смысл помогать ему, оптимизируя частые аллокации и аллокации больших объектов.

Для уменьшения аллокаций в современном .NET предусмотрены Span/Memory<T>, stackalloc с поддержкой Span, структуры и другие средства. Но если без объекта в куче не обойтись, например, если объект слишком большой для стека, или используется в асинхронном коде — этот объект можно переиспользовать. И для самых крупных объектов — массивов, в .NET встроены несколько реализаций ArrayPool<T>.

В этой статье я расскажу о внутреннем устройстве реализаций ArrayPool<T> в .NET, о подводных камнях, которые могут сделать пулинг неэффективным, о concurrent-структурах данных, а также о пулинге объектов, отличных от массивов.

Читать

@csharp_ci
Please open Telegram to view this post
VIEW IN TELEGRAM
Создайте API .NET за 3 минуты с помощью Chat GPT.

Знаете ли вы, что можно создать REST API на C# менее чем за 3 минуты?! Читайте дальше, чтобы узнать секреты быстрой разработки API .NET с помощью Chat-GPT. Давайте начнем!

Читать
@Chatgpturbobot

@csharp_ci
Дорожная карта для .NET-разработчика в 2023 году

Ник Чапсас делится своим видением относительно знаний, которыми должен обладать .NET-разработчик в 2023 году. Только вот странно, что по C# надо знать только C# 11, .NET 7 и .NET CLI.🤦‍♂️

🌐 Смотреть
Please open Telegram to view this post
VIEW IN TELEGRAM
🖥 Что выведет код?

public class Employee
{
private string name;
public string Name
{
get { return name; }
set { name = value; }
}
}

public class Manager : Employee
{
private string name;
public new string Name
{
get { return name; }
set { name = value + ", Manager"; }
}
}

class Program
{
static void Main()
{
Manager m1 = new Manager();

m1.Name = "John";

((Employee)m1).Name = "Mary";

Console.WriteLine(m1.Name);
}
}


👉 Пишите ваше решение в комментариях👇

@csharp_ci
Please open Telegram to view this post
VIEW IN TELEGRAM
⚡️ Pidgin

Легкая, быстрая и гибкая библиотека синтаксического анализа для C#.

🖥 Github

@csharp_ci
Please open Telegram to view this post
VIEW IN TELEGRAM
🖥 Задача: последовательность Посмотри-и-скажи (Count and Say) — это последовательность целых чисел с первыми пятью слагаемыми:

1, 11, 21, 1211, 111221, …

Каждое последующее число генерируется из предыдущего путём конкатенции цифры, из которой состоит группа одинаковых цифр и количества цифр в этой группе, для каждой группы одинаковых цифр в числе. Например:

1 читается как «одна единица», то есть 11
11 читается как «две единицы», то есть 21
21 читается как «одна двойка, одна единица», то есть 1211
1211 читается как «одна единица, одна двойка, две единицы», то есть 111221
111221 читается как «три единицы, две двойки, одна единица», то есть 312211

Напишите алгоритм, который определяет n-й член последовательности. Входные данные: n — натуральное число от 1 до 30 включительно.

Вывод: n-й член последовательности.

Пример:

1. n = 1

Output: 1

2. n = 4

Output: 1211


Разбор
Идея простая, для генерации n-го члена мы генерируем предыдущие n-1, зная начальное значение для n=1. Необходимо отслеживать кол-во последовательных символов и ставить это число перед самим символом. Все детали смотрите в реализации.

Реализация

using System;
using System.Collections.Generic;

public class Program
{
public static string CountAndSay(int n)
{
if (n == 1)
{
return "1";
}

var arr = new List<byte>() { 1 };
for (int i = 2; i <= n; i++)
{
byte count = 1;
int len = arr.Count;
var val = arr[0];
var newNumber = new List<byte>();

for (int j = 1; j < len; j++)
{
if (arr[j] == val)
{
count++;
}
else
{
newNumber.Add(count);
newNumber.Add(val);
count = 1;
}

val = arr[j];
}

if (count > 0)
{
val = arr[len - 1];
newNumber.Add(count);
newNumber.Add(val);
}

arr = newNumber;
}

return string.Join("", arr);
}

public static void Main()
{
Console.WriteLine("UniLecs");

Console.WriteLine(CountAndSay(4)); // 1211
Console.WriteLine(CountAndSay(5)); // 111221
Console.WriteLine(CountAndSay(6)); // 312211
}
}


👉 Пишите ваше решение в комментариях👇

@csharp_ci
Please open Telegram to view this post
VIEW IN TELEGRAM
🛠 Entity Framework Core Power Tools — инструмент для обратной разработки (reverse engineering), миграции и визуализация моделей для EF Core.

Инструмент стремится снизить планку для начала работы с EF Core, предоставляя удобный UI с обратной разработкой существующей базы данных, созданием миграций и визуализацией вашей модели DbContext.

🖥 Github

@csharp_ci
Please open Telegram to view this post
VIEW IN TELEGRAM
⚡️ Testcontainers для .NET

Проект для поддержки тестов с одноразовыми экземплярами Docker-контейнеров для всех совместимых версий .NET Standard.

Testcontainers построен на основе API .NET Docker и обеспечивает упрощенную реализацию для поддержки вашей тестовой среды.

🖥 Github

@csharp_ci
Please open Telegram to view this post
VIEW IN TELEGRAM