Please open Telegram to view this post
VIEW IN TELEGRAM
👍12🔥6
LINQ крайне прикольная штука, она позволяет решать сложные задачи обработки данных лаконично.
Сейчас расскажу про менее очевидные, но мощные возможности, которые помогут вам оптимизировать работу с коллекциями и данными:
1. Группировка с последующей фильтрацией — можно группировать элементы и сразу применять фильтры на основе условий:
var data = new[] { 1, 2, 3, 4, 5, 6 };
var result = data.GroupBy(x => x % 2)
.Where(g => g.Key == 1)
.SelectMany(g => g);
// Результат: [1, 3, 5]
2. Создание словарей с помощью ToDictionary — LINQ позволяет преобразовать коллекцию в словарь:
var items = new[] { "apple", "banana", "cherry" };
var dict = items.ToDictionary(x => x, x => x.Length);
// Результат: {"apple": 5, "banana": 6, "cherry": 6}
3. Выбор уникальных элементов через DistinctBy:
Сравнение объектов по конкретному ключу с использованием DistinctBy (доступно через
System.Linq
)var people = new[] {
new { Name = "Alice", Age = 30 },
new { Name = "Bob", Age = 25 },
new { Name = "Alice", Age = 35 }
};
var unique = people.DistinctBy(p =>
p.Name);
// Результат: Alice (30), Bob (25)
Please open Telegram to view this post
VIEW IN TELEGRAM
👍6🔥3🤝1
В этом посте мы создадим мини-игру "Отгадай слово". Этот проект демонстрирует основы работы со строками, коллекциями и логикой в C#
- Инициализация игры
- Обработка ввода
- Проверка и отображение результата
- Основной цикл
🔥 — если узнал новое
🤝 — если уже знал как создать
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥16🤝7👍4😁2
This media is not supported in your browser
VIEW IN TELEGRAM
Достаточно много новичков в этом канале, поэтому вот сайт для начинающих в C# — Tutorials Teacher
Там собрано множество обучающих материалов, начиная с простого уровня, вы сможете обучаться, а также проходить тесты. Подмечу что в нужных местах присутствуют картинки, что помогает усвоить материал лучше.
📌 Ссылочка: tutorialsteacher.com
➡️ C# Ready | #ресурс
Там собрано множество обучающих материалов, начиная с простого уровня, вы сможете обучаться, а также проходить тесты. Подмечу что в нужных местах присутствуют картинки, что помогает усвоить материал лучше.
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥6👍4🤝2
•
Contains
— проверяет наличие конкретного элемента в списке, возвращая true, если элемент найден, и false, если нет.•
Exists
— проверяет, существует ли в списке элемент, соответствующий заданному условию (предикату), возвращая true при наличии такого элемента и false в противном случае.🔥 — если узнал новое
🤝 — если уже пользовался
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥22🤝8👍3
👍13👎1🔥1
Изучаем работу индексаторов
Индексаторы в C# позволяют обращаться к данным объекта, как если бы это были элементы массива.
Представим, что у нас есть класс
Индексатор позволит нам добавлять и получать контакты по имени. Например, если мы хотим установить номер телефона для Алисы, можно использовать индексатор, как для массива:
Теперь, чтобы использовать этот класс, создадим объект contactList и добавим несколько контактов с помощью индексатора. Например, добавим контакт для Алисы, указав ее номер телефона:
Чтобы получить номер телефона Алисы, можно просто использовать индексатор, указав имя контакта:
🔥 Таким образом, индексаторы позволяют нам обращаться к данным внутри объекта, как к элементам массива, обеспечивая компактность и удобство работы с коллекциями данных в C#
➡️ C# Ready | #практика
Индексаторы в C# позволяют обращаться к данным объекта, как если бы это были элементы массива.
Представим, что у нас есть класс
ContactList
, который хранит контакты в виде словаря. Индексатор позволит нам добавлять и получать контакты по имени. Например, если мы хотим установить номер телефона для Алисы, можно использовать индексатор, как для массива:
public class ContactList
{
private Dictionary<string, string> contacts = new Dictionary<string, string>();
// Индексатор для доступа к контактам
public string this[string name]
{
get => contacts.ContainsKey(name) ? contacts[name] : "Контакт не найден";
set => contacts[name] = value;
}
}
Теперь, чтобы использовать этот класс, создадим объект contactList и добавим несколько контактов с помощью индексатора. Например, добавим контакт для Алисы, указав ее номер телефона:
ContactList contactList = new ContactList();
contactList["Алиса"] = "+123456789"; // Устанавливаем контакт для Алисы
Чтобы получить номер телефона Алисы, можно просто использовать индексатор, указав имя контакта:
Console.WriteLine(contactList["Алиса"]); // Получаем номер Алисы
🔥 Таким образом, индексаторы позволяют нам обращаться к данным внутри объекта, как к элементам массива, обеспечивая компактность и удобство работы с коллекциями данных в C#
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥8👍5
Так вот, она позволяет получать информацию о типах во время выполнения программы, что полезно для динамического создания объектов, вызова методов и работы с атрибутами.
Этот механизм особенно удобен для задач, требующих высокой гибкости и расширяемости кода.
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥20🤝6👍3
This media is not supported in your browser
VIEW IN TELEGRAM
Exercism — это платформа для изучения программирования через практические задания. На ней доступны более 70 ЯП, в том числе и С#. Есть как практический, так и теоретический материал.
⛓ Ссылочка: https://exercism.org
➡️ C# Ready | #ресурс
Please open Telegram to view this post
VIEW IN TELEGRAM
👍9🔥3🤝1