C# Development | YeaHub
742 subscribers
304 photos
33 videos
1 file
537 links
Теория, подготовка к интервью и курсы для C# разработчиков

YeaHub — это платформа для IT-специалистов, объединяющая обучение, карьерный рост, развитие и сообщество единомышленников.

Платформа: https://yeahub.ru

Для связи: @ruslan_kuyanets
Download Telegram
#ЛитКод
Задача: 445. Add Two Numbers II


Вам даны два непустых связанных списка, представляющих два неотрицательных целых числа. Самый значимый разряд стоит первым, и каждый из их узлов содержит одну цифру. Сложите два числа и верните сумму в виде связанного списка.

Вы можете предположить, что оба числа не содержат начальных нулей, за исключением самого числа 0.

Пример:
Input: l1 = [7,2,4,3], l2 = [5,6,4]
Output: [7,8,0,7]


👨‍💻 Алгоритм:

1⃣Создайте два связанных списка r1 и r2, чтобы хранить перевернутые связанные списки l1 и l2 соответственно. Создайте два целых числа totalSum и carry для хранения суммы и переноса текущих цифр. Создайте новый ListNode, ans, который будет хранить сумму текущих цифр. Мы будем складывать два числа, используя перевернутый список, добавляя цифры по одной. Продолжаем, пока не пройдем все узлы в r1 и r2.

2⃣Если r1 не равен null, добавляем r1.val к totalSum. Если r2 не равен null, добавляем r2.val к totalSum. Устанавливаем ans.val = totalSum % 10. Сохраняем перенос как totalSum / 10. Создаем новый ListNode, newNode, который будет иметь значение как перенос. Устанавливаем next для newNode как ans. Обновляем ans = newNode, чтобы использовать ту же переменную ans для следующей итерации. Обновляем totalSum = carry.

3⃣Если carry == 0, это означает, что newNode, созданный в финальной итерации цикла while, имеет значение 0. Поскольку мы выполняем ans = newNode в конце каждой итерации цикла while, чтобы избежать возврата связанного списка с головой, равной 0 (начальный ноль), возвращаем следующий элемент, т.е. возвращаем ans.next. В противном случае, если перенос не равен 0, значение ans не равно нулю. Следовательно, просто возвращаем ans.

😎 Решение:
public class ListNode {
public int val;
public ListNode next;
public ListNode(int val = 0, ListNode next = null) {
this.val = val;
this.next = next;
}
}

public class Solution {
private ListNode ReverseList(ListNode head) {
ListNode prev = null;
while (head != null) {
ListNode temp = head.next;
head.next = prev;
prev = head;
head = temp;
}
return prev;
}

public ListNode AddTwoNumbers(ListNode l1, ListNode l2) {
ListNode r1 = ReverseList(l1);
ListNode r2 = ReverseList(l2);

int carry = 0;
ListNode ans = null;

while (r1 != null || r2 != null || carry > 0) {
if (r1 != null) {
carry += r1.val;
r1 = r1.next;
}
if (r2 != null) {
carry += r2.val;
r2 = r2.next;
}

ListNode newNode = new ListNode(carry % 10);
newNode.next = ans;
ans = newNode;
carry /= 10;
}

return ans;
}
}


👉Новости 👉Платформа
Please open Telegram to view this post
VIEW IN TELEGRAM
#статьи
😊 Планирование фоновых заданий с помощью Quartz в .NET (расширенные концепции)
Читать статью
Please open Telegram to view this post
VIEW IN TELEGRAM
Media is too big
VIEW IN TELEGRAM
#видео
😜 «LINQ Expressions: искусство запрашивать данные»

Как с помощью LINQ можно эффективно работать с данными, применяя различные операторы для фильтрации, сортировки и манипулирования данными. Также рассматривается, как запросы могут изменяться в зависимости от логики и потребностей. Видео акцентирует внимание на том, что запросов на чтение данных значительно больше, чем на их изменение, что требует гибкости в подходах к запросам.
📲 Cмотреть видео

👉Новости 👉Платформа
Please open Telegram to view this post
VIEW IN TELEGRAM
🤔 Какой метод используется для загрузки сборки по ее имени в C#?
Anonymous Quiz
21%
LoadAssembly()
14%
GetAssembly()
44%
Assembly.Load()
21%
Assembly.GetAssembly()
❤1
#собес
🤔 Что такое значимые типы?

Это типы данных, которые хранятся в стеке и передаются по значению. Примеры: int, float, struct. В отличие от ссылочных типов, значимые типы копируются при передаче в методы или присваивании.

👉Новости 👉Платформа
Please open Telegram to view this post
VIEW IN TELEGRAM
❤2🔥1
🤔 Какой метод используется для определения типа по имени в C#?
Anonymous Quiz
54%
Type.GetType()
32%
Type.GetTypeName()
11%
Type.FindType()
4%
Type.LoadType()
❤2🔥2
This media is not supported in your browser
VIEW IN TELEGRAM
#полезное
🤯 CodeViz
С этим расширением для Visual Studio Code ты сможешь понять любой проект

Оно создает интерактивную диаграмму архитектуры, технологий и самых важных файлов.
Расширение

👉Новости 👉Платформа
Please open Telegram to view this post
VIEW IN TELEGRAM
❤1
🤔 Какое ключевое слово используется для ожидания завершения асинхронной операции в C#?
Anonymous Quiz
56%
await
18%
async
22%
wait
4%
defer
❤3🔥2
#статьи
😎 Как интегрировать CIBA в .NET-приложения для повышения безопасности и конфиденциальности.

CIBA — это стандартный поток для раздельной аутентификации, определенный OpenID Foundation, который используется, когда пользователь не может напрямую взаимодействовать с приложением.

Примером может служить ситуация, когда оператор колл-центра отправляет запрос на аутентификацию на устройство клиента, чтобы подтвердить его личность перед выполнением запроса.
Читать статью

👉Новости 👉Платформа
Please open Telegram to view this post
VIEW IN TELEGRAM
❤1
#полезное
👍 Пара примеров полнотекстового поиска Entity Framework

🟠 Если ваша платформа БД поддерживает это и вам действительно нужен поиск по шаблону, рассмотрите возможность использования полнотекстового поиска для эффективного выполнения запросов!

👉Новости 👉Платформа
Please open Telegram to view this post
VIEW IN TELEGRAM
❤1
#книги
😐 Паттерны Kubernetes

В книге рассматриваются фундаментальные, поведенческие, структурные, конфигурационные и защитные шаблоны, а также сложные темы, такие как операторы и автоскейлинг
Скачать можно тут

👉Новости 👉Платформа
Please open Telegram to view this post
VIEW IN TELEGRAM
❤1
#полезное
🥺 Пошаговое руководство по созданию API

Операции создания, чтения, обновления и удаления (CRUD) с использованием ASP.NET Core, Entity Framework Core и базы данных PostgreSQL!
Руководство тут

👉Новости 👉Платформа
Please open Telegram to view this post
VIEW IN TELEGRAM
👍2❤1
#собес
🤔 Что такое деревья выражений?

Это структура данных, представляющая код в виде дерева. В дереве выражений узлы содержат операции (например, сложение, вызов метода) и операнды (например, переменные, значения). Это позволяет анализировать и изменять выражения программно.

👉Новости 👉Платформа
Please open Telegram to view this post
VIEW IN TELEGRAM
❤1
#полезное
🤔 Какая тема лучше для VS Code?

Перестань искать. Здесь собраны все темы, которые можно отфильтровать по языку программирования, количеству установок или популярности, предварительно просмотреть и установить в редактор одним кликом.
vscodethemes.com

👉Новости 👉Платформа
Please open Telegram to view this post
VIEW IN TELEGRAM
❤1
This media is not supported in your browser
VIEW IN TELEGRAM
#полезное
😎 БРУТАЛЬНОЕ расширение для Visual Studio Code!

🟠Git Graph — предоставляет графическое представление вашего Git-репозитория, облегчая визуализацию и управление историей коммитов.

С его помощью вы можете просматривать древовидную структуру коммитов, что особенно полезно при работе с ветвлениями и слияниями
Тык сюда

👉Новости 👉Платформа
Please open Telegram to view this post
VIEW IN TELEGRAM
❤1
Media is too big
VIEW IN TELEGRAM
#видео
😊 C# Factory Method Фабричный Метод | Design Patterns

В нем раскрываются основные концепции, такие как использование фабричного метода для создания объектов, без указания точного типа создаваемого класса. Обсуждаются как преимущества, так и недостатки этого подхода, включая усложнение кода и необходимость в дополнительных фабриках.
📲 Cмотреть на ютубе

👉Новости 👉Платформа
Please open Telegram to view this post
VIEW IN TELEGRAM
❤2👍1
This media is not supported in your browser
VIEW IN TELEGRAM
#полезное
😊 ER-диаграммы

Генерируйте диаграммы отношений сущностей (ER-диаграммы) в формате Mermaid из модели EF Core прямо в .NET Interactive Notebook в VSCode, начиная всего лишь с базы данных

👉Новости 👉Платформа
Please open Telegram to view this post
VIEW IN TELEGRAM
#новости
🫠 В .NET 9 введен новый тип Base64Url.

Существующий метод Convert.ToBase64String может генерировать строку с символами '/', '+', или '=', которые не безопасны для использования в URL, поскольку они имеют особое значение в URL.

Вместо этого, помощник Base64Url генерирует строку без этих символов.

👉Новости 👉Платформа
Please open Telegram to view this post
VIEW IN TELEGRAM
#Собес
🤔 Что такое С#?

С# — это высокоуровневый объектно-ориентированный язык программирования, разработанный для создания надежных и безопасных приложений. Он является частью экосистемы .NET и используется для разработки программ под различные платформы, включая веб-приложения, десктопные и мобильные решения.

👉Новости 👉Платформа
Please open Telegram to view this post
VIEW IN TELEGRAM
❤1👍1
#статьи
👍 Масштабируй .NET-приложения с проверенными практиками. Стратегии обработки миллионов запросов.

Статья рассказывает о масштабировании .NET-приложений для обработки миллионов запросов, включая микросервисы, кэширование (Redis), асинхронное программирование (async/await), оптимизацию запросов, использование облачных сервисов (Azure, AWS), контейнеризацию (Docker, Kubernetes) и мониторинг (Application Insights, Prometheus)
Читать статью...

👉Новости 👉Платформа
Please open Telegram to view this post
VIEW IN TELEGRAM
❤1👍1
#статьи
😊 Управление электронной почтой с помощью .NET 9 и C# с использованием MailKit

SmtpClient устарел и лучше использовать MailKit и MimeKit для эффективной и безопасной работы с электронной почтой.

🟠В статье представлены шаги по установке MailKit, безопасному хранению SMTP-учетных данных с использованием переменных окружения, а также примеры кода для отправки простых писем, писем с вложениями и HTML-содержимым.

🟠Особое внимание уделяется настройке параметров безопасности соединения с SMTP-сервером.
Читать

👉Новости 👉Платформа
Please open Telegram to view this post
VIEW IN TELEGRAM
❤1