我有一個模糊的要求。我需要比較兩個值。值可以是數字或字符串。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