我有一个模糊的要求。我需要比较两个值。值可以是数字或字符串。C#中的比较运算符
欲执行这些操作>,<,==,<>,> =,< =
在我的方法,我将通,参数1,参数2和上述的运算符。
如何在.NET 2.0中有效地比较基于运算符的两个值。
我的方法应该与String和整数输入值一样简化。
样品的输入值:
param1 | param2 | operator
------------------------------
David Michael >
1 3 ==
我有一个模糊的要求。我需要比较两个值。值可以是数字或字符串。C#中的比较运算符
欲执行这些操作>,<,==,<>,> =,< =
在我的方法,我将通,参数1,参数2和上述的运算符。
如何在.NET 2.0中有效地比较基于运算符的两个值。
我的方法应该与String和整数输入值一样简化。
样品的输入值:
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()
的结果,具体取决于您在实施中通过的操作员)
如果您必须/想要要构建通用版本,您需要将比较作为函数/ lambda进行传递 - 不能以通用方式使用运算符。喜欢的东西:
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");
是数字和字符串两种数字格式?给我举两个例子。 – ApolloSoftware