当前位置: 首页 > 编程语言 > C#

C#学习教程:.NET中计算列表的最小值-最大值的最短代码分享

时间:2023-04-11 01:18:34 C#

.NET中计算列表的最小值/最大值的最短代码(委托(MyClassa,MyClassb){返回a.CompareTo(b);});在.NET中是否有内置的方法来执行此操作?尝试查看这些:MinMax只要您的类实现了IComparable,您所要做的就是:Listlist=newList();//添加任何你需要添加的东西MyClassmin=list.Min();MyClassmax=list.Max();好吧,如果您不能使用.NET3.5,您始终可以对列表进行排序并返回列表[0]。它可能不是最快的方法,但它可能是最短的代码,特别是如果您的类已经实现了IComparable。列表列表=新列表();//填充列表//假设SomeClass实现了IComparablelist.Sort();返回列表[0];//最小值,或者返回list[list.Count-1];//max当然,这也假设如果你有多个最小或最大的项目,返回哪个项目并不重要。如果你的类没有实现IComparable,你可以像这样传入一个匿名委托:list.Sort(delegate(SomeClassx,SomeClassy){returnstring.Compare(x.Name,y.Name);});使用Linq你有Min()和Max()函数。所以你可以做list.AsQueryable().Min();你注意到“我还是2岁”——你可能想看看LINQBridge。这实际上适用于C#3.0和.NET2.0,但您应该能够将它用于C#2.0和.NET2.0-只需使用长手:MyClassmin=Enumerable.Min(list),max=Enumerable。最大值(列表);当然,如果您可以切换到C#3.0(仍然以.NET2.0为目标),那就更容易了。如果LINQBridge不行,可以自己实现:以上就是《C#学习教程:.NET中计算ListMin/Max的最短代码》的全部内容,如果对大家有用需要进一步了解C#学习教程,希望大家多多关注——staticvoidMain(){int[]data={3,5,1,5,5};intmin=Min(数据);}staticTMin(IEnumerablevalues){returnMin(values,Comparer.Default);}staticTMin(IEnumerablevalues,IComparercomparer){boolfirst=true;T结果=默认(T);foreach(Tvalueinvalues){if(first){结果=value;第一个=假;}else{if(comparer.Compare(result,value)>0){result=value;}}}返回结果;会员删除。如需转载请注明出处: