所以前提是我有一个名为recipes的表,每个食谱都有成分。我想建立一个购物清单。嵌套连接查询的Linq语法
目前我在做什么是: -
List<ingredient> UsedIngredients = new List<ingredient>();
foreach (var item in this.Recipes)
{
foreach (var ingredient in item.ingredients)
{
if (!UsedIngredients .Contains(ingredient))
{
UsedIngredients .Add(ingredient);
}
}
}
我知道我可以简化它归结为
List<ingredient> UsedIngredients = new List<ingredient>();
foreach (var item in this.Recipes)
{
foreach (var ingredient in item.ingredients.Where(ingredient => !UsedIngredients .Contains(ingredient)))
{
UsedIngredients.Add(ingredient);
}
}
很简单,但我想一定有短手的方法在linq中执行此操作,即获取用于所有选定食谱的所有成分的列表。
同时请注意,
Recipes
的类型为recipe
recipe
类型的列表有一个属性成分,其是使用中间许多一对多连接表(由EF来分解走了加入到成分表只是.ingedients
)
谢谢!我甚至不知道你可以在一个linq查询中使用两个命令 - 这使得其他一些事情也变得更加容易;) – 2014-12-19 00:50:44