C# – Add or overwrite a value in ConcurrentDictionary

The simplest way to add or overwrite a value in a ConcurrentDictionary is to use the indexer: If the key doesn’t exist, this adds it. If the key exists, this overwrites it. The indexer is thread-safe. The indexer is the simplest way to unconditionally add / overwrite a value. Sometimes you’ll want to use other … Read more

C# – Convert a list to a dictionary

The simplest way to convert a list to a dictionary is to use the Linq ToDictionary() method: This loops through the list and uses the key/element selector lambdas you passed in to build the dictionary. In this article, I’ll go into details about how to use ToDictionary() and show how to deal with duplicate keys. … Read more

C# – Pad a 2D array on all sides

Padding a 2D array on all sides means adding new rows on the top and bottom, new columns on the left and right, and then copying the original elements to the center of the padded array. It looks like this: There are two approaches for copying the elements. You can either copy individual items in … Read more

Set Operations – Intersect, Union, Difference, and Symmetric Difference

In the show House, different sets of main characters appeared in different seasons. For example, here are the main characters that starred in seasons 1 and 7: Characters in Season 1 Characters in Season 7 HouseCuddyWilsonForemanChaseCameron HouseCuddyWilsonForemanChaseTaubThirteenMasters Set operations allow you to answer interesting questions, such as “Which House main characters appeared in both seasons … Read more