我想了解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