我正在创建一个从 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);
关于c# - 我可以使用 LINQ 改进这个算法吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3178825/