TryGetNonEnumeratedCount
Он опредяет количество элементов в последовательности без необходимости принудительной итерации по ней.
Особенно полезно для
IQueryable
, когда при вызове метода Count
вы не хотите выполнять полный запрос.#csharp #dotnet #tip by Oleg Kyrylchuk
Please open Telegram to view this post
VIEW IN TELEGRAM
[MemberNotNullWhen]
помогает компилятору указать, при каких условиях указанное поле или свойство не имеет значения NULL
, что улучшает статический анализ кода.#csharp #tip by Łukasz Żabski
Please open Telegram to view this post
VIEW IN TELEGRAM
✅ Как
FirstOrDefault
, так и Find
используются для поиска первого элемента в коллекции, удовлетворяющего определенному условию.🚀 Find: потенциально может быть быстрее для коллекций в памяти (например,
List<T>
), поскольку потенциально может использовать прямое индексирование для поиска элемента.💡 Это относится к следующим типам коллекций:
List
, Array
, ImmutableList
.#tip #csharp #dotnet by Jalal Alzebda
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥 UUID v7 в .NET 9
.NET изначально поддерживает UUID v4 через
📌 UUID v7
Так как
Основным преимуществом является включение метки времени в UUID. Это дает 122 бита энтропии, включая 6 бит для версии и варианта где-то посередине.
Главное преимущество заключается в том, что вы можете сортировать UUID по времени их создания, что делает их более подходящими для баз данных по сравнению с UUID v4.
📌 Контроль метки времени
Поскольку метод ожидает
#csharp #dotnet #tip by
Steven Giesel
.NET изначально поддерживает UUID v4 через
Guid.NewGuid().
Но начиная с предварительной версии 7, появилась поддержка UUID версии 7.📌 UUID v7
Так как
GUID
является альтернативным названием для UUID,
новый API находится в пространстве имен System.Guid:
var guid = Guid.CreateVersion7();
var guidWithTimestamp = Guid.CreateVersion7(DateTimeOffset.UtcNow);
Основным преимуществом является включение метки времени в UUID. Это дает 122 бита энтропии, включая 6 бит для версии и варианта где-то посередине.
Главное преимущество заключается в том, что вы можете сортировать UUID по времени их создания, что делает их более подходящими для баз данных по сравнению с UUID v4.
📌 Контроль метки времени
Поскольку метод ожидает
DateTimeOffset,
вызывающая функция может использовать TimeProvider для контроля UtcNow:
var uuid = Guid.CreateVersion7(timeProvider.GetUtcNow());
timeProvider
может быть получен через DI контейнер и подделан в тестовых сценариях.#csharp #dotnet #tip by
Steven Giesel
💡 Начиная с C# 7 мы можем использовать символ _ для улучшения читаемости числовых литералов. Это особенно полезно для больших чисел и предназначено только для читаемости.
#dotnet #csharp #tip by Dave Callan
#dotnet #csharp #tip by Dave Callan
#csharp #dotnet #tip by Karen Payne
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM