這是我在這裏的第一篇文章,所以請溫柔!Lambda語句語法 - 幫助學習者
我是c#的新手,因此對lambda來說很新。我正在嘗試構造一個lambda表達式,但我錯了,因爲它沒有發生錯誤,但它沒有返回任何值。
我試圖做的是從表中選擇的一些信息在數據庫中選擇將
SELECT slope
FROM scaleTable
WHERE percentage = aPercentagePassedIn
這應該只是返回一條記錄。
我們正在使用實體框架。
這是我但正如我所說的,我知道這是錯誤的:
List<ScaleTable> maxSlope = ScaleTableList.Where(a => a.Slope.Equals(ScaleTableList.Where(b => b.Percentage.Equals(aPercentagePassedIn)))).ToList();
感謝您的幫助。
更新1
非常感謝您的幫助@ m1Lb4nKs和@Habib。我嘗試了所有選項,但由於某種原因,它不喜歡SingleOrDefault或Where(錯誤是表不包含SingleOrDefault或Where的定義),因此當我將它與表名一起使用時:
var result = ScaleTable.SingleOrDefault(r => r.Percentage == aPercentagePassedIn);
或
var result = ScaleTable.Where(x => x.Percentage = aPercentagePassedIn).Select(y => y.slope).FirstOrDefault();
任何想法?
更新2
好吧,謝謝@Millie。我已經在頂部使用了聲明,所以這不是問題。
我改變了我的代碼,但它與「無法隱式轉換類型十進制到布爾」錯誤。百分比是小數。
List<ScaleTable> maxSlope = ScaleTableList.Where(x => x.Percentage = aPercentagePassedIn).Select(y => y.slope).FirstOrDefault();
所以,我想這一點,但得到了一個錯誤,基本上說,它不能類型ScaleTable轉換爲System.Collections.Generic.List
List<ScaleTable> maxSlope = ScaleTableList.SingleOrDefault(r => r.Percentage == aPercentagePassedIn);
所以,我還是住了,感覺「不太擅長這個「!
爲了響應您的更新,把「使用System.Linq;」在文件的頂部。你必須做ScaleTableList,而不是ScaleTable。 –
百分比==。兩個等號。並在最後調用ToList()來擺脫該錯誤。 –
解釋... ==比較。 =賦值,所以表達式的結果是一個小數。所有的linq查詢都返回一個可枚舉的,而不是一個列表。 –