Why Your Cast Doesn’t Work in C#: A Simple Guide 💻


Hey Reader,

Today, I want to show you something important about casting objects in C#. We’ll talk about the difference between casting a single object and a list of objects.

What’s the Problem?

Imagine you have a game with characters. We have a Character class that implements an ICharacter interface. Here's what that looks like:

Single Object Casting

We have a method to get a single character by its ID. Here’s how it looks:

When we run this method, it works because C# knows that Character implements ICharacter, so it can cast it automatically.

List of Objects Casting

Now, let’s get a list of characters:

Here’s the problem: You can't return a List as a List directly because the compiler doesn't know how to do that. We have to explicitly cast each Character to ICharacter using LINQ’s Select method.

How to Fix It

To fix this, we use LINQ’s Select method to cast each Character to ICharacter:

This code goes through each Character in the list and casts it to ICharacter.

Summary

  1. Single Object: C# can cast a single Character to ICharacter automatically.
  2. List of Objects: You need to manually cast each Character to ICharacter.

See it in Action

Check out the full tutorial on YouTube to see this in action 👇

video preview

Conclusion

I hope this helps you understand how to cast objects in C#. Remember, single objects can be cast implicitly, but lists need explicit casting.

Happy coding!

Take care,

Patrick

PS: Need help understanding .NET & Blazor? There are two ways I can help you with:

  1. Check out the .NET Web Academy, which provides masterclasses and a supportive community of like-minded developers.
  2. I'm open to coaching. If you need specific help, reply to this email and we'll figure something out.

PPS: Would you like to sponsor this newsletter? I'm just an email away. Have an awesome weekend! 🎉


.NET Web Academy

Become a .NET & Blazor expert with weekly tutorials featuring best practices and the latest improvements, right in your inbox.

Read more from .NET Web Academy
video preview

Hey friend, Lately I told an AI I’d see it in 7 hours, and went to bed. It was done in 2. Across two different projects. There’s this thing people call the night shift. You give an AI agent a pile of work, start it in a loop, and go to sleep while it keeps working on your real codebase. I tried it a month ago and could not make it work, the model just fell apart. But with the newest models, it works now. And the surprising part wasn’t that it ran all night. It’s that it ran out of work before...

video preview

Hey friend, For almost every .NET project I start now, I reach for the same architecture. Not clean architecture. Not the classic controller, service, repository stack that pretty much every tutorial taught us a decade ago, me included... I reach for vertical slice architecture. In my latest video, I break down exactly what it is, why it became my default, and the part almost nobody is talking about. Now that we are all building alongside AI, the rules for choosing an architecture have...

video preview

Hey friend, Knowing how to prompt is not enough anymore. If you want to land clients or your next role, you need real projects you can show. And one of the best places to start is a portfolio page. So in my latest video I build one from scratch using Claude and VS Code. Blazor, static server-side rendering, a clean single-page design, the whole thing. Watch on YouTube But here is the part that matters. I let Claude do the heavy lifting - the layout, the sections, the design, even pulling real...