字典<foo,list <bar =“”>&gt;如何使用LINQ将列表分配给键的属性?</foo,>

时间:2010-08-25 22:11:29

标签: c# linq dictionary

我有问题中描述的词典。我的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);

2 个答案:

答案 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();