我正在创建从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);