- Creating and using your own class, struct and enum (with flag(s), preferably)
- Property (standard, indexed, auto-implemented) usage in struct and class.
- Named and optional argument usage.
- Extension method usage.
- Reading from file.
- Generic type usage.
- Regex.
- Widening and narrowing type conversions.
- Putting data to collection, iterating through it the right way.
- LINQ to Objects usage (methods and queries), including groupJoin.
- Implementing some of the standard .NET interfaces (IEnumerable, IComparable, IComparer, IEquatable, IEnumerator, etc.)
- Lazy initialization.
- Generics (in delegates, events and methods).
- Delegates.
- Events and their usage: standard and custom.
- Exceptions and dealing with them in a meaningfull way.
- Anonymous methods.
- Lambda expressions.
- concurrent programming (threading or async/await (for your own written classes); common resource usage between threads).
- Config file usage (both - app and user).
- Dependency Injection.
- Prepair ER diagram and create the database (MS SQL, but not mandatory - only important to be able to integrate to your solution).
- Transfer/update data using DataTable and DataAdapter.
- Select/insert/update/delete usage.
- LINQ usage: Join, Group, Skip and Take, Agregate function.
- Entity Framework usage.