列表獲取最大我有以下表的LINQ從記錄
ID Amt Received SchoolAmt
-- ---- -------- -------
2 55 N
2 88 Y 7
2 44 N 6
3 5 N
3 9 N
4 5 N 32
5 33 Y
6 43 N
7 54 N 66
對於給定的ID,我需要找到的最大數量,然後檢查是否它被標記爲Y如果是這樣,標記結果爲布爾true爲false。要做到這一點
一種方法是:
db.Exp.
Where(x => x.ID == id)
.OrderByDescending(x => x.Amt)
.Take(1)
.Any(x => x.Received == "Y");
其作品,但我還需要補充一點SchoolAmt也應該是大於0
爲什麼以下不工作:
db.Exp.
Where(x => x.ID == id)
.OrderByDescending(x => x.Amt)
.Take(1)
.Any(x => x.Received == "Y" && x => x.SchoolAmt > 0);
當我嘗試鍵入x => x.SchoolAmt> 0時Visual Studio不允許它,因爲它似乎是不正確的syntex。
我怎麼知道什麼時候使用&& X .SchoolAmt> 0與我所擁有的。意思是,我看到過類似於x => x.Received ==「Y」&& x => x.SchoolAmt> 0,用於 – 2012-02-22 22:40:15
之前的where子句@Nate「x =>」正在製作一個lambda表達式。這基本上是讓編譯器爲你創建一個方法。 「x」是方法的參數,之後的所有內容都是方法體中包含的內容。每個謂詞只能使用一次(在開始處)。 – 2012-02-22 22:47:26
@NatePet編譯器將我的答案中的第一個代碼塊變成類似於第二個代碼塊 - 「x =>」被映射到它爲您製作的方法的「(YourClass x)」參數列表。 – 2012-02-22 22:48:20