我有两个列表LINQ合并两个列表(在组合键全外连接)
IEnumerable<Citrus> grapefruit = citrusList.Where(x => x.IsSmall == false);
IEnumerable<Citrus> tangerines = citrusList.Where(x => x.IsSmall == true);
我希望把我所有的柑橘在PackingContainer,但我想先tangelos--的组合葡萄柚和橘子 - 从我的葡萄柚和橘子,其中Citrus.Color =橙色,Citrus.flavor =非常浓郁,Citrus.Texture =粒状和柑橘。状态=成熟
现在我嵌套了foreach循环,检查
foreach (Citrus fruit in grapefruit)
{
foreach (Citrus fruitToo in tangerines)
{
PackingContainer container = new PackingContainer();
if (fruit.Color == fruitToo.Color &&
fruit.Flavor == fruitToo.Flavor &&
fruit.Texture == fruitToo.Texture &&
fruit.State == fruitToo.State)
{
Tangelo tangy = new Tangelo(fruit.Color, fruit.Flavor, fruit.Texture, fruit.State, "A tangelo", new Decimal(0.75);
container.Add(tangy);
}
}
}
但我确定有更好的方法来做到这一点。我想基本上做一个完整的外部联合(联合所有的葡萄柚和橘子,但是使交叉口出来)。我的最终目标是制作一个PackingContainer,其中包含一些柚子,一些橘子和一些橘柚。我相信在LINQ中有更好的方法来做到这一点。
...但我无法从http://msdn.microsoft.com/en-us/library/bb907099.aspx和http://msdn.microsoft.com/en-us/library/bb384063.aspx弄明白,它不完全是联盟,因为我正在修改相交成员(http://msdn.microsoft.com/zh-cn/library/bb341731 .aspx)
帮助不大?
嗯。听起来很好吃。 – dotariel 2010-11-04 18:31:21