2012-10-20 28 views
1

可能重複:
C# dynamic operator是否可以從列表中C#應用數學運算4.0

我不知道這是可能的,但讓我問:

例如,我從列表中生成一個簡單的數學運算

List lstMat={=,+,-} 

然後我產生0-2之間的隨機值,然後從列表中選擇運營商

這樣
int ir1=1; 
    int ir2=2; 

    int irNew= ir1 lstMat[1] ir2 ; 
    //irNew would be 3 

這可能嗎?

+0

最接近的事是的,這是可能的。這是否回答你的問題? – dtb

+0

@dtb,那麼,OP當然可以設計完成他的目標(一般而言)的代碼,但ir1 lstMat [1] ir2'永遠不會編譯。 –

回答

4

我能想到的

List<Func<int, int, int>> lstMat = new List<Func<int, int, int>>() 
{ 
    (x,y)=>x.CompareTo(y), 
    (x,y)=>x+y, 
    (x,y)=>x-y 
}; 

int ir1=1; 
int ir2=2; 

int irNew= lstMat[1](ir1,ir2); 
+1

+1您可能首先要插入'(x,y)=> x.CompareTo(y)''。 –

+0

@TimSchmelter謝謝.. –