我想了解LINQ語法並陷入困境。所以,我有這行獲得所有的人通過郵政編碼我在尋找LINQ語法 - 標準的排序
IQueryable<int> PersonIDsWithThisPostcode = _context.Addresses
.Where(pst => pst.Postcode.Contains(p))
.Select(b => b.PersonID);
這條線則只有返回人PersonIDsWithThisPostcode
persons = persons.Where(ps => PersonIDsWithThisPostcode.Contains(ps.PersonID));
我會,預計到沿着這個方向行事,你在看一個容器,然後檢查一部分值,看看你想要什麼。
persons = persons.Where(ps => ps.PersonID.Contains(PersonIDsWithThisPostcode));
從SQL點的觀點我認爲它是這樣的
bucket = bucket.Where(bucket.Contains(listoffish));
所以,但它似乎像這樣
bucket = bucket.Where(listoffish.Contains(bucket));
我讀過通過大量的文檔,但我無法理解這個顯而易見的簡單概念。任何幫助解釋這種思維方式,將不勝感激。
感謝
當檢查集合myList.Contains(someId)中的單個ID時是否合理。 但在這種情況下,我有兩個集合,一個用於「persons」(一個表中的人員記錄集合),另一個用於「PersonIDsWithThisPostcode」(來自不同表格的PersonID集合),那麼爲什麼是'PersonIDsWithThisPostcode .contains(有些人)' 正確的地方 'persons.contains(有些PersonIDsWithThisPostcode)' 不是? 什麼是你應該比較收藏哪一種方式的規則? – Glyn
@Glyn集合包含單個項目,而不是列表,所以'myList.Contains(someOtherList)'沒有意義。你可以詢問'myList'和'someOtherList'是否共享項目,或者如果一個集合完全包含在另一個集合中,但是你需要使用一個量詞('Any'或'All'方法對應於'和∀在數學中)。 – dasblinkenlight
那麼「myList」是一個集合? 如果你所做的只是返回公共元素,我應該可以互換地使用'myListA.Contains(myListB)'和'myListB.Contains(myListA)'。 人模型是一個集合不是'它? PersonIDsWithThisPostcode是一個集合,因爲它是IQueryable不是嗎? – Glyn