我喜欢类似的东西
int minIndex = list.FindMin(delegate (MyClass a, MyClass b) {returns a.CompareTo(b);});
在.NET中有没有内置的方法来做到这一点?
试着看看这些:
敏
马克斯
只要你的类实现IComparable,你所要做的就是:
Listlist = new List(); //add whatever you need to add MyClass min = list.Min(); MyClass max = list.Max();
好吧,如果你不能使用.NET 3.5,你总是可以对列表进行排序,然后返回列表[0].它可能不是最快的方式,但它可能是最短的代码,特别是如果你的类已经实现了IComparable.
Listlist = new List (); // 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); });