if - else if - else
if (condition) && (condition2) || (condition3) { … }
else if (condition) { … }
else { … }
ternary operator
condition ? true-return : false-return
while
while (condition) { … }
do … while
Executes the code in the body, then checks the condition:
do {
	…
} while (condition)
for
for (initializer; condition; iterator) { … } 
initializer: int x = 0
condition: x < 10
iterator: x++
All 3 are optional.
foreach
Uses IEnumerable<T>.
Use foreach to enumerate the elements of a collection:
foreach (int item in a) { … }
foreach (var name in names) { … }
foreach works on any type that follows these rules:
- The type must have a method named GetEnumeratorthat returns an object.
- The returned object must have a property named Currentand a method namedMoveNext.
- The Movenext method must change the value of Currentand returntrueif there are more items to enumerate through or returnfalseotherwise.
Extend IEnumerable<T> to Use foreach with Index
public static IEnumerable<(T item, int index)> WithIndex<T>(this IEnumerable<T> source) {
    return source.Select((item, index) => (item, index));
}
// And now:
foreach (var (item, index) in collection.WithIndex()) {
	DoSomething(item, index);
}
switch case
switch (expression) {	// expression is tested against the cases below.
	case firstCase:	    // if expression == firstCase, execute this block.
		…
		break;		    // must explicitly break or return.
	case secondCase when (otherCondition):	// use the when keyword to define another condition
		…
		break;
	case thirdCase:	    // if expression == thirdCase, fallthrough to fourthCase and execute that block.
	case fourthCase:
		goto Some_label;
	default:		    // if no other cases match, execute this block.
		…
		break;
}
Console.WriteLine("End of switch statement.");
Some_label:
Console.WriteLine("Jumped directly to the label.");