C# language features
Delegates, events, lambdas
- Events, delegates and lambdas in .NET C# part 1: delegate basics
- Events, delegates and lambdas in .NET C# part 2: delegates in action
- Events, delegates and lambdas in .NET C# part 3: delegates with events in action
- Events, delegates and lambdas in .NET C# part 4: subscribing to events
- Events, delegates and lambdas in .NET C# part 5: lambda, Func, Action
- Events, delegates and lambdas in .NET C# part 6: other scenarios
Extension methods
- Extension methods part 1: the basics
- Extension methods in C# .NET part 2: arrays, collections, portability
- Extension methods in .NET part 3: mixture of useful methods
Interfaces
- Explicit interface implementation in .NET Part 1
- Explicit interface implementation in .NET Part 2
- Explicit interface implementation in .NET Part 3
- Explicit interface implementation in .NET Part 4
Generics
- Introduction to generics in C# Part 1
- Introduction to generics in C# Part 2
- Introduction to generics in C# Part 3
- Introduction to generics in C# Part 4
- Introduction to generics in C# Part 5
- Introduction to generics in C# Part 6
Comparison and equality
- How to declare natural ordering by implementing the generic IComparable interface in C# .NET
- How to declare natural ordering by implementing the generic IComparer interface in C# .NET
- Implementing the IEquatable of T interface for object equality with C# .NET
- Implementing the IEqualityComparer of T interface for object equality with C# .NET
- Implementing equality of reference types by overriding the == operator with C# .NET
- Using the StringComparer class for string equality with C# .NET
- How to declare natural ordering by overriding the comparison operators in C# .NET
- Implementing the IEquatable of T interface for object equality in a derived class with C# .NET
- Implementing equality of derived reference types by overriding the == operator with C# .NET
- Determine if two arrays are structurally equal in C# .NET
- Implementing equality for reference objects using IEquatable and the == operator: summary
- Structurally compare two arrays in .NET
Collections
- Using the HashSet of T object in C# .NET to store unique elements
- Customise your list by overriding Collection of T with C# .NET
- Getting notified when collection changes with ObservableCollection in C# .NET
- Using the KeyedCollection object in C# .NET
- Keeping the key-values sorted by using a SortedDictionary with C# .NET
- Using linked lists in .NET with C#
- LIFO collections with Stack of T in .NET C#
- Creating sorted sets with C# .NET
- How to check whether two HashSets are equal in C# .NET
- FIFO collections with Queue of T in .NET C#
- Implementing an enumerator for a custom object in .NET C#
Console apps
- How to hide the text entered in a .NET console application
- How to terminate a .NET console application with an exit code
- How to change the colours in a .NET console application
- Extract the full argument list as a string in a .NET console application
- How to change the size of the command prompt in a .NET console application
- Introducing the Command Line Parser Library to make parsing command line arguments easier
- How to hide the key pressed in a .NET console application
- How to redirect standard input for a .NET console application
- Subscribing to cancel key press events in a .NET console application
- How to redirect standard error output for a .NET console application
- Extracting information about key pressed in .NET console applications
- Performing some action while waiting for a key to be pressed in .NET console applications
C# 6
- How to create immutable objects in C# 6
- How to assign an expression to a class property in C#6
- How to assign an expression to a method in C#6
- Getting the name of a variable in C# 6 using nameof
- A new way of checking for nulls in C# 6
- Add items to a list using an extension method in C# 6
- A new way to format strings in C# 6
- Importing static methods from a namespace in C# 6
- Filtering exceptions in C# 6
C# 7
- Enabling C# 7.1 and 7.2 features in your .NET code
- Throwing exceptions in expressions in C# 7.0
- Using the ValueTask of T object in C# 7.0
- Async Main methods in C# 7.1
- Access modifiers in C# 7.2
- Embedded local functions in C# 7.0
- Using delimiters for numeric literals in C# 7.0
- Handling out variables in C# 7.0
- Expression bodied members in constructors and get-set properties in C# 7.0
- New Tuple features and deconstruction with Tuples in C# 7
- Pattern matching in C# 7.0
Miscellaneous
- Preserving stacktrace information when processing exceptions with C# .NET
- Formatting positive and negative numbers with C# .NET
- Resolving null values in C#
- Extending class definitions with partial classes in C# .NET
- The ‘if’ preprocessor directive for the compiler in C# .NET
- Searching for elements in arrays in C# .NET
- How to emit compiler warnings and errors in C# .NET
- How to indicate that code is obsolete in C# .NET
- Creating a read-only collection from an array in C#
- Converting a string into a DateTime with an exact date format in C# .NET
- Combining parts of full file path in C# .NET
- The Conditional attribute to control execution of parts of the code in C# .NET
- Overriding the + and – operators in C# .NET
- Read the byte array representation of a C# base type
- Read the byte array representation of a C# date time
- Compose extremely large integers using BigInteger in C# .NET
- Checking for arithmetic overflow in C# .NET
- Implementing an indexer for your object with C# .NET
- How to pass any number of parameters into a method in C# .NET
- Combinable enumerations in C# .NET
- Overriding explicit and implicit conversion in C# .NET
- Type conversion example in C# .NET using the IConvertible interface
- How to build URIs with the UriBuilder class in C#
- Combinable enumerations in C# .NET: numeric values of large enums
- How to register a custom HTTP module in your .NET web application
- Calculate standard deviation of integers with C# .NET
- Truncate a DateTime in C#
- Various quarter-related DateTime functions in C#
- Calculate the number of months between two dates with C#
- Divide an integer into groups with C#
- Set various options for your HTTP calls through the HttpClientHandler object in .NET
- Keyword function arguments in C#
- How to convert a plain string into a secure string with C#
- Strategies to extend an existing interface in .NET
- Divide an integer into groups with C# .NET
- Build array index ranges of an integer in C# .NET
Thanks Andras Nemes to sharing C#6 notes
thanks awesome
C# 7 feature should also be added