C# Ready | Unity
7.54K subscribers
636 photos
37 videos
315 links
Авторский канал по разработке на C# и Unity.
Ресурсы, гайды, задачи, шпаргалки.
Информация ежедневно пополняется!

Автор: @energy_it

Реклама на бирже: https://telega.in/c/csharp_ready
Download Telegram
👩‍💻 Изучаем обработку ввода в Unity — важную часть взаимодействия с игроком!

Unity предлагает два способа: напрямую через клавиши или через действия из Input Manager. Оба метода позволяют легко реагировать на действия пользователя.

Ключевые моменты:

Input.GetKey() и его аналоги читают физические клавиши — подойдут для прототипов

Input.GetButton() использует имена действий — удобно для масштабируемых настроек

Методы вызываются в Update() и работают каждый кадр


Низкоуровневый и абстрактный подход — выбирай в зависимости от целей и размера проекта.

➡️ C# Ready | #unity
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥26👍1410🤝10
Фильтруем списки эффективно с ToHashSet!

Сейчас научимся быстро отбирать элементы одного списка, проверяя, есть ли они в другом. Это избавит от лишних проходов и ускорит работу кода.

Подключим нужные библиотеки — всё уже есть в стандартной библиотеке:
using System;
using System.Collections.Generic;
using System.Linq;


Допустим, мы хотим оставить только избранные фрукты. Без оптимизации код выглядит так:
List<string> fruits = new() { "apple", "banana", "mango", "orange" };
string[] favorite = { "banana", "kiwi", "orange" };

var selected = fruits.Where(f => favorite.Contains(f)).ToList();


Если списки большие, Contains() будет работать медленно — каждый раз проходит по массиву.

Теперь преобразуем второй список в HashSet — поиск в нём быстрее:
List<string> fruits = new() { "apple", "banana", "mango", "orange" };
string[] favorite = { "banana", "kiwi", "orange" };

HashSet<string> favSet = favorite.ToHashSet();

var selected = fruits.Where(f => favSet.Contains(f)).ToList();


🔥 Без ToHashSet() код искал «банан» в массиве снова и снова. С HashSet — это почти мгновенная проверка.

➡️ C# Ready | #практика
Please open Telegram to view this post
VIEW IN TELEGRAM
15🔥9👍8
12👍5🔥5
Что же выведет консоль?
Anonymous Quiz
33%
A
15%
B
18%
C
35%
D
👍14🔥85
👩‍💻 Основные LINQ-приёмы для работы с IEnumerable!

Where отбирает нужные элементы, Select формирует новые представления, SelectMany разворачивает вложенные коллекции, OrderBy сортирует, Distinct убирает дубликаты, а Any и All помогают быстро проверить условия.

➡️ C# Ready | #шпора
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥21🤝86👍5
☕️ Нашёл годную статью — экспресс-введение в Avalonia UI, создание кроссплатформенного калькулятора на ․NET.

В этой статье:

• Базовая подготовка: dotnet new + VS Code, установка шаблонов Avalonia
• Разметка интерфейса на Grid и биндинги MVVM через ReactiveUI
• Стилизация: от локальных сеттеров до готовой Material-темы

🟡 Рекомендую прочитать на Habr!


➡️ C# Ready | #статья
Please open Telegram to view this post
VIEW IN TELEGRAM
10👍6🔥5
Извлекаем только нужные поля с анонимными типами в LINQ!

Сейчас научимся фильтровать и проецировать данные без лишнего шума в коде — всё с помощью анонимных типов. Это отличный способ быстро получить нужные поля из объектов, не создавая для этого отдельные классы. Удобно, лаконично и читаемо!

Для начала подключим стандартные библиотеки, с которыми работает LINQ и коллекции.
using System;
using System.Linq;
using System.Collections.Generic;


Допустим, у нас есть список пользователей. Каждый — это объект с несколькими свойствами:
class User {
public int Id;
public string Name;
public int Age;
}
List<User> users = GetUsers();


Часто мы хотим взять только часть данных — например, Id и Name.
Вместо того чтобы вручную создавать новый класс или собирать словарь, мы можем сделать это прямо в LINQ-запросе — с помощью анонимного типа:
var result = users
.Where(u => u.Age > 18)
.Select(u => new { u.Name, u.Id });


Теперь в result лежит коллекция объектов с двумя свойствами — Name и Id. Обращаться к ним можно сразу:
foreach (var u in result)
Console.WriteLine($"{u.Id}: {u.Name}");


🔥 Без анонимных типов пришлось бы писать отдельный класс, копировать туда данные, и городить лишнюю структуру.
А с new { u.Name, u.Id }всё делается за одну строку, без лишнего мусора.

➡️ C# Ready | #практика
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥196👍5🤝1
This media is not supported in your browser
VIEW IN TELEGRAM
😎 CSharp Star — это онлайн-площадка с учебными статьями и лайфхаками!

Здесь собраны пошаговые гайды по C#, ASP․NET Core, Entity Framework и другим технологиям, разбор алгоритмов, подборки вопросов для собеседований и советы по оптимизации кода.

📌 Оставляю ссылочку: csharpstar.com

C# Ready | #ресурс
Please open Telegram to view this post
VIEW IN TELEGRAM
6👍6🔥4👎1
👩‍💻 Реализуем LRU-кэш! (Least Recently Used cache)

В этой задаче создаём кэш фиксированного объёма, который автоматически удаляет наименее используемые элементы, сохраняя актуальные данные доступными за константное время.

В этой задаче:

Используем Dictionary для мгновенного доступа к элементам по ключу.

Поддерживаем порядок использования через двусвязный список.

При превышении ёмкости вытесняем «самый старый» элемент.


Такой кэш незаменим в браузерах, базах данных и системах, где важна скорость повторного доступа к данным.

➡️ C# Ready | #задача
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥224👍4
🔥97👍6
Что же выведет консоль?
Anonymous Quiz
23%
A
8%
B
31%
C
38%
D
👍7🔥4🤝1