Distinct con LINQ

Se vogliamo ottenere con LINQ una lista di elementi senza duplicati possiamo utilizzare il metodo Distinct<T>() dell'interfaccia IEnumerable<T> nel seguente modo:

// Prendo da un array di nomi solo quelli che cominciano con M
string[] names = new string[]{ "Andrea", "Marco", "Manuel", "Marco", 
                               "Sara", "Elisa", "Marta" };
var distinctNames = (from name in names
                    where name.StartsWith("M")
                    select name).Distinct();