将复杂对象转换为字典<;字符串,字符串>;
本文关键字:字符串 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()
作为值。