Using CountBy and AggregateBy in C# 13 / .NET 9
It’s great to see Microsoft still giving us new things in LINQ. With C# 13 / .NET 9, we get CountBy and AggregateBy, so let’s see how to use them.
It’s great to see Microsoft still giving us new things in LINQ. With C# 13 / .NET 9, we get CountBy and AggregateBy, so let’s see how to use them.
Async code isn’t always intuitive, but practicing helps. Let’s take a look at Async, CancellationToken, and IProgress, in a few short examples.
Testing .NET code involving time has always been a pain, but the TimeProvider class (backported to the .NET Framework) gives us awesome new tools.
Changed the default value for a report parameter, but it’s not actually updating in SSRS? That’s by design. Let’s find a way around it.
Testing timers in C# is difficult, but .NET 8 (C# 12) adds an abstract TimeProvider class that makes it easier. Let’s take a closer look.
Testing time in C# is difficult, but .NET 8 (C# 12) adds an abstract TimeProvider class that makes it easier. Let’s take a closer look.
A look at if/else, switch/case, pattern matching, other options … and which is best. (spoiler: none ;) )
C# has been getting a lot of pattern matching love in recent years, like with list patterns in C# 11. The problem is knowing where and how to use it.
Generic attributes increase the flexibility of a very early .NET feature. Let’s try using them and see how it keeps our code DRY.
Writing async code whenever possible is great, but how do we do it when we’re stuck with legacy (and very synchronous) code?