gpt4 book ai didi

c# 将对象数组添加到 ICollection - 转换 dto -> 模型

转载 作者:太空宇宙 更新时间:2023-11-03 10:22:03 25 4
gpt4 key购买 nike

我需要转换这个DTO

public class MyDTO
{
[JsonProperty("studentInfo")]
public StudentInfo studentInfo {get; set; }

public class StudentInfo
{
[JsonProperty("others")]
public ICollection<AnotherDTO[]> Others { get; set; }
}
public class AnotherDTO
{
[JsonProperty("name")]
public string name { get; set; }
}

}

到这个模型

public class MyModel
{
public StudentInfo studentInfo {get; set; }

public class StudentInfo
{
public ICollection<Another[]> Others { get; set; }
}
public class Another
{
public string name { get; set; }
}

}

我被 ICollection 挂断了。这是我试图填充 ICollection Others 的地方。

 private static ICollection<MyModel.Another[]> getAnothers(MyDTO myDTO, MyModel myModel)
{
List<MyModel.Another> myList = new List<MyModel.Another>();
foreach(var x in myDTO.studentInfo.Others)
{
foreach(var y in x)
{
myList.Add(new MyModel.Another
{
name = y.name
});
}

}
}
MyModel.Another[] newList;
newList = myList.ToArray();
ICollection<MyDTO.AnotherDTO[]> ic = (ICollection<MyModel.Another[]>newList.Cast<MyModel.Another[]>().ToList();

这最后一行给我以下错误:

无法将类型为 MyModel 的对象转换为类型 MyModel[]。

如有任何帮助,我将不胜感激。

最佳答案

与其手动映射对象,我建议使用 AutoMapper . AutoMapper 是一个简单的小库,旨在解决看似复杂的问题 - 摆脱将一个对象映射到另一个对象的代码。您还可以获得 AutoMapper 的 Nuget 包

只需定义对象的映射 -

Mapper.CreateMap<MyDTO, MyModel>();

..并像这样简单地映射对象 -

var myModelObject = Mapper.Map<MyModel>(myDtoObject);

请引用this入门链接。

关于c# 将对象数组添加到 ICollection - 转换 dto -> 模型,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33116256/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com