Specification keywords
abstract | as | base | bool | break | byte | case | catch | char | checked | class | const | continue | decimal | default | delegate | do | double | else | enum | event | explicit | extern | false | finally | fixed | float | for | foreach | goto | if | implicit | in | int | interface | internal | is | lock | long | namespace | new | null | object | operator | out | override | params | private | protected | public | readonly | ref | return | sbyte | sealed | short | sizeof | stackalloc | static | string | struct | switch | this | throw | true | try | typeof | uint | ulong | unchecked | unsafe | ushort | using | virtual | void | volatile | while

Magic keywords
__arglist | __makeref | __reftype | __refvalue

Keywords as an identifier
@typeof @goto = @for.@switch(@throw);

Preprocessor keywords
#define | hidden | default | disable | restore | checksum

C# 1.0 Contextual keywords
get | set | value | add | remove

C# 2.0 Contextual keywords
where | partial | global | yield | alias

C# 3.0 Contextual keywords
from | join | on | equals | into | orderby | ascending | descending | group | by | select | let | var

C# 4.0 Contextual keywords
dynamic