Paweł Łukaszuk
Tips, tricks and quirks in .NET
#1about 2 minutes
The surprising internal structure of generic lists
The generic `List<T>` in .NET is not a linked list but is implemented as a resizable array, which has important performance implications.
#2about 4 minutes
Comparing the performance of for and foreach loops
While `for` loops were historically faster, optimizations in .NET 7 have made `foreach` performance nearly identical due to reduced enumerator overhead.
#3about 4 minutes
Why `Where().Count()` is faster than `Count(predicate)`
Using `Count()` with a predicate is significantly slower than chaining `Where()` and `Count()` because it results in a virtual method call instead of an instance method call.
#4about 4 minutes
When not to use `StringBuilder` for concatenation
`StringBuilder` is not always the fastest option for joining strings; for a small number of short strings, simple concatenation with `+` can be more performant due to `StringBuilder`'s resizing overhead.
#5about 3 minutes
The difference between `string.Empty` and an empty literal
Despite generating different IL code, `string.Empty` and the `""` literal compile to identical assembly instructions and have the same performance, with the only difference being compile-time usage constraints.
#6about 5 minutes
Safer null checking and the risk of operator overloading
Using the `==` operator for null checks is unsafe because it can be overloaded; the `is null` pattern should be used instead to avoid unexpected behavior.
#7about 4 minutes
How to terminate an application instantly
The `Environment.FailFast` method immediately terminates an application without executing `catch` or `finally` blocks, making it a drastic way to handle catastrophic failures.
#8about 4 minutes
Understanding the default banker's rounding in .NET
The `Math.Round` method in .NET uses banker's rounding by default, which rounds values ending in .5 to the nearest even integer, a behavior that can be surprising.
Related jobs
Jobs that call for the skills explored in this talk.
Dennemeyer Group
Hesperange, Luxembourg
Intermediate
Senior
.NET
Structured Query Language (SQL)
Matching moments
02:33 MIN
Why you might not need JavaScript for everything
WeAreDevelopers LIVE – You Don’t Need JavaScript, Modern CSS and More
03:16 MIN
Improving the developer feedback loop with specialized tools
Developer Time Is Valuable - Use the Right Tools - Kilian Valkhof
08:07 MIN
Exploring modern JavaScript performance and new CSS features
WeAreDevelopers LIVE – AI, Freelancing, Keeping Up with Tech and More
01:06 MIN
Malware campaigns, cloud latency, and government IT theft
Fake or News: Self-Driving Cars on Subscription, Crypto Attacks Rising and Working While You Sleep - Théodore Lefèvre
02:55 MIN
Why developers often undervalue their time and paid tools
Developer Time Is Valuable - Use the Right Tools - Kilian Valkhof
11:32 MIN
The industry's focus on frameworks over web fundamentals
WeAreDevelopers LIVE – Frontend Inspirations, Web Standards and more
11:10 MIN
The only frontend stack that truly matters
WeAreDevelopers LIVE – Frontend Inspirations, Web Standards and more
02:49 MIN
Using AI to overcome challenges in systems programming
AI in the Open and in Browsers - Tarek Ziadé
Featured Partners
Related Videos
Hacking C# from the inside - how to do anything in NET
Adam Furmanek
Catching up on the basics you don't really need that much code
Chris Heilmann
Exploring the Latest Features of .NET and C# by Building a Game
Rainer Stropek
C# 13 Unleashed: Live Demos of my Top 10 Cutting-Edge Features!
Ambesh Singh & Sachin Kumar
Programming secure C#/.NET Applications: Dos & Don'ts
Sebastian Leuer
C++ Features You Might Not Know
Jonathan Müller
Angular tips/tricks you can use from tomorrow on
Benedikt Starzengruber
How Regex Works: The Secret Sauce Behind Pattern Matching
Andrii Raikov
Related Articles
View all articles



From learning to earning
Jobs that call for the skills explored in this talk.




Michael Page
Charing Cross, United Kingdom
£75-85K
CSS
.NET
Blazor
JavaScript


Rocken AG
Zürich, Switzerland
CSS
HTML
.NET
Blazor
ASP.NET
+1

Kontext E
Kontext E
Dresden, Germany
Remote
.NET
ASP.NET
Microsoft SQL Server


Clerkenwell
Charing Cross, United Kingdom
API
.NET
Azure
Microservices
Continuous Integration