将复杂对象转换为字典<;字符串,字符串>;

本文关键字:字符串 lt gt 字典 复杂 对象 转换 | 更新日期: 2023-09-27 18:28:18

我需要将一个dto对象类转换为

 public class ComplexDto 
    {
        public ComplexDto()
        {
            ListIds = new List<ListIdsDto>();            
        }
        public string Propertie1 { get; set; }
        public string Propertie2 { get; set; }
        public IList<int> ListIds { get; set; }        
    }    

到CCD_ 1。

这只是一些类的例子,这个类将被用作json对象,如下所示:

     {"Propertie1":"ss","Propertie2":"","ListIds":[1,2,3]}

我需要将这个对象作为字符串的字典传递给FormUrlEncodedContent(dictionary)。

我有这个:

     var data = new Dictionary<string, string>();            
     data[string.Empty] = ComplexDto.ToJson();      

我想将ComplexDto.ToJson()或ComplexDto对象转换为Dictionary字符串,string。

有什么想法吗?

将复杂对象转换为字典<;字符串,字符串>;

假设您有一个集合,其中包含一些ComplexDto实例,如:

List<ComplexDto> complexDtoList = ...;

并且您预计会有重复的键,这将导致异常(否则您可能会首先使用字典)。

您可以使用Enumerable.GroupBy来获取唯一密钥。然后,您必须决定要对每组1-nPropertie2字符串执行什么操作。一种方法是使用String.Join将所有内容与分隔符连接:

Dictionary<string, string> result = complexDtoList
    .GroupBy(dto => dto.Propertie1)
    .ToDictionary(
        p1Group => p1Group.Key,
        p1Group => string.Join(",", p1Group.Select(dto => dto.Propertie2)));

您也可以构建一个Dictionary<string, List<string>>并使用p1Group.Select(dto => dto.Propertie2).ToList()作为值。