我對sum運算符有問題。運算符&&不能應用於double和bool類型的操作數
var Total_money = List.Sum(x => x.Cost && x.Type_of_room == Type);
所以我得到的消息「操作員& &不能適用於double類型的操作數和布爾」
我對sum運算符有問題。運算符&&不能應用於double和bool類型的操作數
var Total_money = List.Sum(x => x.Cost && x.Type_of_room == Type);
所以我得到的消息「操作員& &不能適用於double類型的操作數和布爾」
你最有可能需要過濾第一再總結成本
var Total_money = List.Where(x => x.Type_of_room == Type).Sum(x => x.Cost);
現在工作。所以原因是首先用條件列表,然後在這個列表中總結信息。這是對的嗎? 那麼,爲什麼count可以用在很多條件裏面,並且不需要先過濾列表,但仍然有效?例如:var Room = List.Count(x => x.Type_of_room == Type && x.Date_rent.Date = '15「) –
Sum正在對一個聚合表達式進行計數,同時將其計算爲一個謂詞表達式。 – Nkosi
你表達式x.Cost
返回一個double,x.Type_of_room == Type
返回一個bool。這兩者都不能與&&
進行比較。
因此,例如,如果您想讓費用符合成本要求,那麼您可以使成本爲bool表達式,如x.Cost > 0
。
如果你想擁有從那些x.Type_of_room == Type
總結了成本,就應該表達被劃分爲.Where(x => x.Type_of_room == Type)
後跟一個.Sum(x => x.Cost)
導致:
var totalMoney = List
.Where(x => x.Type_of_room == Type)
.Sum(x => x.Cost);
中和的Func鍵()應該返回一個數字,但是你將它視爲一個布爾表達式,就好像它應該返回true或false一樣。
解決此問題的一種方法是首先用查詢語法過濾查詢,然後使用方法語法獲取這些值的總和。
var Total_money = (from x in List where x.Type_of_room == Type select x.Cost).Sum();
你讀過文檔? – Anton
您預期'x.Cost && x.Type_of_room == Type'意味着什麼? – David
你對錯誤信息有什麼不瞭解?問題是什麼非常明確。 – Servy