Ну, если вы не можете использовать .NET 3.5, вы всегда можете отсортировать список и затем вернуть список [0]. Это может быть не самый быстрый способ, но это, вероятно, самый короткий код, особенно если ваш класс уже реализует IComparable.
List<SomeClass> list = new List<SomeClass>();
// populate the list
// assume that SomeClass implements IComparable
list.Sort();
return list[0]; // min, or
return list[list.Count - 1]; // max
Это также предполагает, конечно, что не имеет значения, какой предмет вы возвращаете, если у вас есть несколько предметов, которые являются минимальными или максимальными.
Если ваш класс не реализует IComparable, вы можете передать анонимного делегата, что-то вроде этого:
list.Sort(delegate(SomeClass x, SomeClass y) { return string.Compare(x.Name, y.Name); });