当前位置:  开发笔记 > 编程语言 > 正文

用于计算.NET中列表最小值/最大值的最短代码

如何解决《用于计算.NET中列表最小值/最大值的最短代码》经验,为你挑选了2个好方法。

我喜欢类似的东西

int minIndex = list.FindMin(delegate (MyClass a, MyClass b) {returns a.CompareTo(b);});

在.NET中有没有内置的方法来做到这一点?



1> Nicholas Man..:

试着看看这些:

马克斯

只要你的类实现IComparable,你所要做的就是:

List list = new List();
//add whatever you need to add

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


因为它是一个很好的(我应该移动到3.5 :)
如果您仍然使用.NET 2.0,那么这又如何成为您接受的答案?

2> Ryan Lundy..:

好吧,如果你不能使用.NET 3.5,你总是可以对列表进行排序,然后返回列表[0].它可能不是最快的方式,但它可能是最短的代码,特别是如果你的类已经实现了IComparable.

List list = 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); });

推荐阅读
mobiledu2402852413
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有