Seit .NET 2.0 gibts auf den List- und Array-Klassen so praktische FindXY()-Methoden.
Diese Methoden erwarten alle einen Predicate<> - Parameter...
und so gehts:
List<MyType> lstT = new List<MyType>();
for (int i = 0; i < 100; i++)
{
lstT.Add(new MyType(i.ToString(), i));
}
string searchExpr = "20";
lstT.Find(
delegate(MyType obj)
{
return searchExpr == obj.Test1;
});
Das ganze wurde hier mit anonymen Methoden gelöst - das muss natürlich nicht sein, haltet das ganze aber einfach.