c# – 使用比较的泛型
发布时间:2020-12-16 00:22:41 所属栏目:百科 来源:网络整理
导读:我在C#中有一个类,我想实现在泛型数组中进行操作的方法.例如,我想从通用数组中获取最大组件值.在我的情况下,只考虑数字类型(int,long,double ……)就足够了 public class NumericCalculationT where T : IComparableT{ public static T getMax (T[] array) {
我在C#中有一个类,我想实现在泛型数组中进行操作的方法.例如,我想从通用数组中获取最大组件值.在我的情况下,只考虑数字类型(int,long,double ……)就足够了
public class NumericCalculation<T> where T : IComparable<T> { public static T getMax (T[] array) { T maxValue = default(T); if ( array.Length > 0) { maxValue = array[0]; for (int i = 0; i < array.Length; i++) { if (array[i] > maxValue) { maxValue = array[i]; } } } return maxValue; } } 但是这会返回错误: 有没有我正在跳过的界面?是否可以对通用数字数组执行此通用方法? 谢谢! 解决方法
听起来你只是想要:
return array.DefaultIfEmpty().Max(); 但要回答您的具体问题,您可以使用 if(array[i].CompareTo(maxValue) > 0) { ... } 但就个人而言,我会使用 if(Comparer<T>.Default.Compare(array[i],maxValue) > 0) { ... } (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |