c#中的比较运算符
本文关键字:运算符 比较 | 更新日期: 2023-09-27 18:09:25
我有一个模糊的要求。我需要比较两个值。值可以是数字或字符串。
>我想执行这些操作,& lt;, = = & lt;>、> =、& lt; =
在我的方法中,我将传递parameter1, parameter 2和上面的操作符。
如何在。net 2.0中有效地基于运算符比较两个值。
我的方法应该简化为字符串和整数输入值。
样本输入值:
param1 | param2 | operator
------------------------------
David Michael >
1 3 ==
如果两个参数总是相同的类型,您可以使用一个泛型方法,其中两个参数都实现了IComparable<T>
(在。net 2.0中引入)
public int CompareItems<T>(T item1, T item2) where T: IComparable<T>
{
return item1.CompareTo(item2);
}
(您可以根据您在实现中传递的操作符来解释CompareTo()
的结果)
如果你必须/想要构建泛型版本,你需要将比较作为function/lambda传递-不可能以泛型方式使用操作符。Somithing:
class OpComparer<T>
{
Func<T,T,bool> operation;
public OpComparer(Func<T,T,bool> op)
{
operation = op;
}
int PerformOp(T item1, T item2)
{
return operation(item1, item2);
}
}
...
var comparerLess = new OpCompared<String>((a,b)=> a < b );
var result = comparerLess.PerformOp("aaa", "bbb");