<p>I'd like something like</p>

<pre><code>int minIndex = list.FindMin(delegate (MyClass a, MyClass b) {returns a.CompareTo(b);});
</code></pre>

<p>Is there a builtin way to do this in .NET?</p>

Try looking at these:
Min
Max
As long as your class implements IComparable, all you have to do is:
```
```
List<MyClass> list = new List();
//add whatever you need to add

MyClass min = list.Min();
MyClass max = list.Max();
```
```