使用Zip转换为keyvalue对

时间:2017-06-24 12:39:40

标签: c# json linq dictionary

我正在使用Zip来组合两个具有相同计数的列表。

List<NameDTO> _nameDetials = new List<NameDTO>();
List<ValDTO> _valDetials = new List<ValDTO>();
var combined = _nameDetials
    .Zip(_valDetials, (name, val) => new KeyValuePair<NameDTO, ValDTO>(name, val));

我得到_nameDetails和_valDetails的结果为enter image description here,如下图3和图4所示 enter image description here

使用下面的代码转换为json

var jsonSerialiser = new JavaScriptSerializer();
var json = jsonSerialiser.Serialize(combined);

我收到了image1 enter image description here

中显示的结果

但我需要一个输出,如图2所示  enter image description here

非常感谢任何帮助。 感谢

1 个答案:

答案 0 :(得分:4)

您可以通过Zip这样的电话延长ToDictionary来电。

var combined = _nameDetials
    .Zip(_valDetials, (name, val) => new  { name.Name, val.Val })
    .ToDictionary(x => x.Name, x => x.Val);

var jsonSerialiser = new JavaScriptSerializer();
var json = jsonSerialiser.Serialize(combined);

这将导致以下json

  

{&#34; account-Ind&#34; :&#34; A&#34;,...}