使用动态密钥

时间:2015-09-18 21:50:30

标签: c#

我有以下内容:

   List<string> names = new List<string>{"Foo"};
   List<object> data = new List<object>();
   data.Add(new Dictionary<string, object> {{names[0], "Grand Totals"}}); 

这很有效,但我很好奇是否有更简单的语法可以达到相同的效果。

我试过了:

data.Add(new {names[0], "Grand Totals"}); 

但我收到错误:

  

匿名类型投影初始值设定项应该是简单名称或成员访问表达式。

1 个答案:

答案 0 :(得分:1)

它不清楚为什么object被用于一个字符串,但这实现了相同的结果sans boxing

List<string> names = new List<string>{"Foo"};

List<string> headers = new List<string>() { "Grand Totals" };

var data = names.Zip(headers, (nm, hd) => new { Name = nm, Header = hd })
                .ToDictionary(kvp => kvp.Name, kvp => kvp.Header );

数据如下所示:

enter image description here