I've seen a lot of posts of people having problems using Distinct() and/or Sort() with custom objects.
Here is an example showing an implementation of both (in C++, C# and VB).
This post includes custom Compare methods, the implementation of Distinct() and the use of List.ForEach in the 3 main dot net languages.