Cómo obtener una instancia distinta de una lista por Lambda o LINQ

Tengo una clase como esta:

class MyClass<T> {
    public string value1 { get; set; }
    public T objT { get; set; }
}

y una lista de esta clase. Me gustaría usar .net 3.5 lambda o linq para obtener una lista de MyClass por valor distintivo1. Supongo que esto es posible y mucho más simple que la forma en .net 2.0 de almacenar en caché una lista como esta:

List<MyClass<T>> list; 
...
List<MyClass<T>> listDistinct = new List<MyClass<T>>();
foreach (MyClass<T> instance in list)
{
    // some code to check if listDistinct does contain obj with intance.Value1
    // then listDistinct.Add(instance);
}

¿Cuál es la forma lambda o LINQ de hacerlo?

Respuestas a la pregunta(7)

Su respuesta a la pregunta