Place all items in a set and if the count of the set is different from the count of the list then there is a duplicate.
bool hasDuplicates(List myList) {
var hs = new HashSet();
for (var i = 0; i < myList.Count; ++i) {
if (!hs.Add(myList[i])) return true;
}
return false;
}
Should be more efficient than Distinct as there is no need to go through all the list.