我有问题中描述的词典。我的Foo类看起来像这样:
class Foo {
List<Bar> Bars {get;set;}
}
我想运行字典,并将KeyValuePair值分配给Key的Bars属性。这可能吗?
我有类似的东西,但它有点不可思议:
List<Foo> foos = new List<Foo>();
foreach(var kvp in myDict)
{
kvp.Key.Bars = kvp.Value;
foos.Add(kvp.Key);
}
return foos;
编辑: 这看起来好一点:
foreach (var kvp in results.Keys)
{
kvp.Bars = results[kvp];
}
return results.Select(kvp => kvp.Key);
答案 0 :(得分:3)
我不是100%肯定你的意思,但是这个:
var foos = myDict.Select(kvp =>
{
kvp.Key.Bars = kvp.Value;
return kvp.Key;
}).ToList();
答案 1 :(得分:1)
怎么样
List<Foo> foos = (from kvp in myDict
select new Foo() { Bars = kvp.Value }).ToList();
或
List<Foo> foos = (from kvp in myDict
let dummy = (kvp.Key.Bars = kvp.Value)
select kvp.Key).ToList();