我正在创建从Foo到Baa的一对一映射的集合。

Baa包含Foo独特实例的集合。

这是完成工作的一些代码:

Dictionary<Foo, Baa> mappings = new Dictionary<Foo, Baa>();

foreach (Baa baa in CollectionOfBaa)
{
    foreach (Foo foo in baa.CollectionOfFoo)
    {
        mappings.Add(foo, baa);
    }
}


有没有更好的方法使用LINQ做到这一点?

我不反对用KeyValuePair列表替换字典。

谢谢。

最佳答案

你可以用

var mappings = (from baa in CollectionOfBaa
                from foo in  baa.CollectionOfFoo
                select new { foo, baa }).ToDictionary(e => e.foo, e=> e.baa);

07-24 09:44