Все самое полезное для C#-разработчика в одном канале.
Наши курсы: https://clc.to/y3LDtw
По рекламе: @tproger_sales_bot
Для обратной связи: @proglibrary_feeedback_bot
РКН: https://gosuslugi.ru/snet/67a5c81cdc130259d5b7fead
Post #5871
4.51K
БИ @csharpproglib
Showing posts older than #5872 · Back to latest


-- Создание индекса на столбец email в таблице users
CREATE INDEX idx_users_email ON users(email);
-- Анализ плана выполнения запроса
EXPLAIN ANALYZE
SELECT * FROM users WHERE email = 'example@example.com';




Мой первый pull request. Первый проект. Я хотел показать, как умею быстро писать код. Ну и засунул абсолютно всё в контроллер: валидацию, обращение к БД, бизнес-логику, обработку ошибок. Зато как быстро я всё это наклепал! Жаль, потом по рукам надавали и сказали переделать..


IEnumerable<T> или IQueryable<T>.var result = collection.Where(x => x.Age > 30).OrderBy(x => x.Name).ToList();
var result = from x in collection
where x.Age > 30
orderby x.Name
select x;
IQueryable<T> для внешних источников данных (например, базы данных), чтобы запрос выполнялся на сервере.Sum(), Average(), Max(), и группировку через GroupBy().join, union, intersect и except.var combined = collection1.Join(collection2,
c1 => c1.Id,
c2 => c2.Id,
(c1, c2) => new { c1.Name, c2.Price });
let для промежуточных вычисленийvar result = from x in collection
let temp = x.Age * 2
where temp > 40
select new { x.Name, temp };
DefaultIfEmpty() для предотвращения ошибок при работе с пустыми коллекциями.ToListAsync(), для работы с асинхронными источниками данных.
WeakReference «отпустила» объектclass MyObject
{
~MyObject()
{
Console.WriteLine("MyObject был удалён сборщиком мусора");
}
}
class Program
{
static void Main()
{
WeakReference weakRef = test();
GC.Collect();
GC.WaitForPendingFinalizers();
GC.Collect();
Console.WriteLine("После сборки мусора: " + (weakRef.IsAlive ? "Жив" : "Удалён"));
}
static WeakReference test() {
var obj = new MyObject();
WeakReference weakRef = new WeakReference(obj);
Console.WriteLine("До удаления ссылки: " + (weakRef.IsAlive ? "Жив" : "Удалён"));
return weakRef;
}
}
IsAlive показывает, жив ли объект.GC.Collect() + GC.WaitForPendingFinalizers() заставляют сборщик мусора немедленно освободить неиспользуемые объекты.~MyObject() позволяет наглядно убедиться, что объект удалён.IsAlive может показывать, что объект жив даже после GC.Collect(), если объект ещё не финализирован или находится в очереди на финализацию.TryGetTarget вместо IsAlive.

Forwarded from Библиотека задач по C# | тесты, код, задания