在嵌套选择中将KeyValuePair添加到新Dictionary

时间:2011-12-21 13:35:53

标签: c# linq

我有一个大的嵌套选择新的类,这很好,但我想添加一个新的KeyValuePair到" TestDictionary"在飞行中,它具有来自" B"。

的价值
from a ... from b ...
select new c
{
    TestC = b.Foo,
    TestDictionary = new Dictionary(b.Parameters.ToDictionary(
                  x => x.ParameterKey, x => (object)x.ParameterValue)) 
// .Add(new.. "SomeKey", b.SomeValue) ?
    }).ToList()

尝试使用Add方法,但无法使其工作。是否可以动态添加一个keyvaluepair到新创建的字典?

提前致谢

/拉塞

1 个答案:

答案 0 :(得分:2)

您应该能够使用集合初始化程序语法。当Add()方法使用多个参数时,与Dictionary一样,您可以用花括号包装每个参数:

from a ... from b ...
select new c
{
    TestC = b.Foo,
    TestDictionary = new Dictionary(b.Parameters.ToDictionary(
                  x => x.ParameterKey, x => (object)x.ParameterValue)) 
                 {
                   {"SomeKey", b.SomeValue},
                   //{"SomeOtherKey", b.FooBar} //if you had more than one…
                 };
}).ToList()