繁体   English   中英

如何使用键将列表转换为字典,但不包括键作为元素

[英]How to convert list to dictionary using key but do not include key as element

我有下面的linq查询,可以正常工作:

var jsonString = JsonConvert.SerializeObject(this.DocumentTypes.Select(c => new
{
    RowId = c.RowId,
    Id = c.Id,
    IsDocumentType = c.IsDocumentType
}).ToDictionary(x => x.RowId));

如您所见,我将字典的键设置为RowId,但是只有在将RowId作为返回的元素包括在内时,才能使它起作用。

有没有一种方法可以实现相同的结果而不必将RowId包含为返回的元素?

谢谢。

ToDictionary方法的重载允许您指定如何构造值。 例如,您可能想要这样(注意,这也消除了对Select的需要):

var data = this.DocumentTypes
    .ToDictionary(
        dt => dt.RowId,
        dt => new { dt.Id, dt.IsDocumentType })); //<< Here we are creating a new anonymous
                                                  //   type to use as the value

var jsonString = JsonConvert.SerializeObject(data);

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM