I’ve recently been working on a small library for doing validation with lambda expressions. It allows you to run a set of validators against an object, then collects the validation errors in a list. Here are some examples:
var person = new Person();
var validator = Validator.For(person).Rules(
rule => rule.For(p => p.Forename).NotNull(), //Forename cannot be null
rule => rule.For(p [...]