2013-08-23 51 views
-1

我目前正在編寫一些測試,以查看字典中的值是否匹配。一個例子是'TestOperatorMatchNotFoundIfValueNotNumeric'等。我已經成功地編寫了測試時,比較字符串與字符串,但現在我必須檢查值是不是數字(使其無效)不能應用於操作數'字符串'和'小數'

我試圖使用邏輯在以前的測試中有一些調整,但我得到的錯誤消息'操作符'=='不能應用於類型'字符串'和'小數'的操作數。以下是我正在處理的代碼,其中第8行和第9行顯示了兩條錯誤消息。非常感謝您提供任何幫助。

public bool IsMatch(Dictionary<String, String> variableData) 
    { 
     decimal outputValue; 
     bool isANumber = Decimal.TryParse("StringValue", out outputValue); 

     if (variableData.ContainsKey(this.value1Name)) 
     { 
      if (comparisonOperator == "==") 
      { 
       if (variableData[this.value1Name] == this.value2Literal) //Error Msg 
       { 
        return true; 
       } 
      } 
      else 
      { 
       if (variableData[this.value1Name] != this.value2Literal) //Error Msg 
       { 
        return true; 
       } 
      } 
     } 

     return false; 
    } 
+0

什麼是value2Literal'的'類型和''comparisonOperator編輯 –

+0

,value2Literal是小數和comparisonOperator一個字符串。 – user2637869

+0

然後我100%確定問題不在上面的代碼中。張貼您發生錯誤的地方。 –

回答

1

你不能比較1.00 ==「1.00」,你可以Convert.ToDecimal(「1.00」)並進行比較。 但我不建議這樣做。

你看到你的字典有字符串值。

所以您選擇的代碼會變得

Convert.ToDecimal(variableData[this.value1Name]) == this.value2Literal 
相關問題