如何比较和获取列表产品中p.street == a.street的产品 列出产品{p1,p2,p3}列表地址{a1,a2,a3}
示例:
3.ListeProductResult = {P1,Paris} {P5 Rome}
两种解决方案都运行良好谢谢我想添加第二个列表进行比较 CategorieProduct = {C1,C2}
它有效,但最佳解决方案是什么
var result = from product in ListProduct
join address in ListAddresse on product.Street equals address.Street
join Categories in ListCategories on product.CategorieNom equals Categorie.CategorieNom select product;
答案 0 :(得分:1)
这样做的最佳方法是使用join
- 这将匹配两个不同实体的属性
var result = from product in ListProduct
join address in ListAddresse on product.Street equals address.Street
select product;
如果这给您多个匹配(例如,如果您有一个产品的多个匹配地址),那么您可以另外将Distinct()应用于此查询的输出。
有关Linq的更多示例,请参阅MSDN上的优秀101 linq examples - 包括有关联接的部分 - http://msdn.microsoft.com/en-us/vcsharp/ee908647#crossjoin
答案 1 :(得分:0)
可以使用以下列表完成:(假设Street
是我们正在比较的属性)
var result = productsList
.Where(product => addressList
.Any(address => address.Street == product.Street));