2016-03-01 46 views
-2

我是MVC C#中的新成員。我收到這個錯誤,我檢查並發現了類似的錯誤。運算符'=='不能應用於mvc類型'bool'和'string'的操作數c#

的錯誤是 - 「操作員‘==’不能應用於類型‘布爾’和‘串’的操作數」

準則是 -

List<RptItem> _r2 = _r1.Where(xx => xx.Value == ("rcat")) 
      .Select(xx=>(KeyValuePair<string, string>?)xx) 
      .FirstOrDefault(); 

有人能幫助我, 我需要做什麼。

感謝

+1

'xx.Value'似乎是'bool'類型,因此不可能是''rcat''。檢查_r1''T' – Ian

+0

_r1的定義是什麼?該錯誤意味着xx.Value是一個布爾值,並且您正在嘗試使用字符串來檢查它。 – Pheonyx

+0

_r1正在回退一些字典值。 – ronibd

回答

2

酷似錯誤狀態,你正試圖以比較boolxx.Value)與string"rcat")這是不允許的原因顯而易見。

+0

如何更改爲字符串 – ronibd

+0

將true/false轉換爲'string'會有什麼意義?特別是當'string'是'「rcat」'?你究竟想在這裏嘗試什麼? – Idos

+0

我想分配一個字典值到列表中,_r1返回一些字典值。 – ronibd

1

在c#和幾乎所有強類型語言中,您都必須將正確的類型參數傳遞給函數,方法和運算符。運算符'=='通常被重載爲只接受兩個相同類型的對象,因此無法將字符串類型的對象與類型爲bool的對象進行比較。

您可能會對您的LINQ查詢的第二部分感到困惑: .Select(xx=>(KeyValuePair<string, string>?)xx)

僅僅因爲您將xx設置爲KeyValuePair<string, string>?並不意味着xx值在另一個範圍中屬於該​​類型:(xx => xx.Value == ("rcat")。兩個xx是兩個不同的變量!

如果你想xx.Value一個字符串,這樣就可以與"rcat"進行比較,你可以選擇調用該函數ToString()xx.Value(雖然,因爲xx.Value是一個布爾值,調用此方法只會產生串等於"true""false")。

+0

請給我舉個例子 – ronibd

+0

一個什麼樣的例子? – Glubus

+0

我使用了xx => xx.Value ==(「rcat」)。ToString但仍然出現相同的錯誤 – ronibd

相關問題