C# – Using a dictionary with tuples

You can use dictionaries with tuples as the keys or values. I’ll show examples below. Dictionary with tuple as key Tuples have two or more fields, so using a tuple as the key is a simple way to have compound keys in a dictionary. Here’s an example of creating a dictionary with a named tuple … Read more

C# – Using a list of tuples

Here’s an example of how to initialize a list of named tuples: This creates a list of named value tuples (ValueTuple<string, int>) using list initializer syntax and then loops through the tuples. I suggest always using named value tuples (not System.Tuple). This outputs the following: I’ll now show how to add to the list of … Read more

C# – How to deconstruct tuples

Deconstructing a tuple means assigning its fields to several variables at once by using the deconstruction assignment syntax. This is also referred to as destructuring or tuple unpacking. Here’s an example of deconstructing a tuple into two variables: This outputs: Deconstructing the tuple assigns the fields (Item1 and Item2) to variables based on position. The … Read more

C# – How to use named tuples

You can use tuples to contain multiple values and pass them around. By default, the tuple field names are unfriendly – Item1, Item2, etc… Instead of using these default names, you can name the tuple fields. Here’s an example of creating and using a named tuple: Meaningful names makes tuples easier to use. movieTuple.title is … Read more

C# – How to deconstruct an object

Deconstructing an object means assigning its properties to several variables with a one-liner using deconstruction assignment syntax (also referred to as destructuring or unpacking). Here’s an example of deconstructing an object: This outputs the following: Several built-in types already support deconstruction – such as tuples, dictionary (KeyValuePair), and records. You can enable deconstruction for any … Read more

C# – Serialize a tuple to JSON

When you serialize a tuple to JSON, it uses the the underlying ValueTuple’s field names – Item1 and Item2. It doesn’t matter if you’re using a named tuple, it won’t use the names you specified in the tuple declaration. This behavior is the same with Newtonsoft and System.Text.Json. Here’s an example of serializing a named … Read more