C# Select and Where: Writing SQL-Style Queries in Code
C# is a marvelous language. It’s powerful, fast, and easy to learn. It also exposes advanced features that make doing otherwise difficult things simple. Even more impressively, it manages to make reading the code to do those complicated things easy, too. Many programming languages struggle with this last part. You might be able to do something really cool, but the code is opaque for other developers to read.
One example of a feature where C# makes the difficult easy is in the Language Integrated Natural Query (LINQ) interface. If you’ve been working with a C# code base for a little while, you might have run up against some LINQ code. The first time you see it can feel a little confusing. Some variations of LINQ code look like an entirely different programming language from the C# that you’re used to. Even for variations of LINQ that aren’t entirely different syntax, it can be difficult to parse just what the code you’re looking at is doing.
In this post, we’ll walk through the basics of LINQ and talk about how they work, so the next time you see some LINQ code, it’ll be because you’re writing it yourself.

As the title of the article makes clear, this post is a gentle introduction to the concept of inheritance. It’s aimed at beginners that still haven’t mastered inheritance. That means that, despite being a complete introduction, we’ll not venture into more advanced aspects of the concept. By the end of the post, you’ll not know everything there is to know about C# inheritance. Instead, you’ll have a solid working knowledge, upon which you can keep building more and more.
Every programming language has operators. Operators are the components of the language that, well, operate on variables mostly. Most C# operators are symbols such as % and ??. And some are words, like async and is. In this guide, you’ll see all of them, including an example of each one. We’ll start with the operators that are common among programming languages and end on some that are more specific to C#.
We’ve already covered so many C# concepts, and most of them relate to objects. This is hardly surprising, C# being an object-oriented language. What is surprising is that, up until this point, we haven’t covered the “thing” responsible for creating objects!
If you’re a regular reader of the SubMain blog, you’ll know that we often publish posts about fundamental concepts of the C# language. Today’s post adds yet another chapter to this ongoing series. The topic we’ll cover is, in fact, as fundamental as it can get: C# data types.
You’re a little ways into your first programming job, and things are getting easier. At first, all the code you had to deal with might have overwhelmed and confused you, but you’re starting to get the hang of it. That’s great! Now you’re wondering how to take the code you write to the next level. While there are lots of things to learn about your programming stack, many of which will make you a better programmer, there are a few that will serve you no matter what stack you work in. One of those is code documentation.
When you first start out with C#, you’ll surely begin by creating a class. This is true whether you’re creating the code by hand or having a tool do it for you. The class is one of the most basic elements of the C# language. It serves many purposes, but the main purpose is for grouping related functions.
Time for another C#-related post. We’ve already covered a fair amount of the language’s keywords, 
One of the most anticipated acts at a circus is the juggler?a performer who can move five or six or more balls in the air at the same time. The really complicated juggling acts, however, add something extra to wow the crowd. The juggler?first climbs some stairs, high up but still close enough for everyone to see. He’s on a platform. The overhead lights are dim while one bright spotlight is on the juggler as he starts to juggle?one, two, three, four, five, and six balls moving effortlessly through the air, all in balance. He’s good!