gpt4 book ai didi

c# - 使用 Linq 对列表元素进行分组并映射到新模型

转载 作者:行者123 更新时间:2023-11-30 20:44:07 25 4
gpt4 key购买 nike

我有应该使用 Linq 语句转换为另一个数据结构的项目列表。我能够对列表进行分组,但是,我无法正确创建子元素。

这是我的结果模型(简化):

public class MyModel {
string Name {get; set;}
List<MySubmodel> Submodels {get;set;}
}

public class MySubmodel {
string Id {get;set;}
string Title {get;set;}
...
}

这是来源:

public class SourceModel
string Id {get;set;}
string Title {get;set;}
...
string Name {get;set;} // this is property for grouping
}


public List<SourceModel> src = getList();

srcSourceModel 的列表元素部分匹配 MySubmodel 并且我有一个映射器映射 src 列表元素到 MySubmodel)。

IEnumerable<MyModel> t = from p in src
group p by p.Name into sl
select new MyModel()
{
Name = sl.Key,
// and I am not able to create MoelSublists object
ModelSublists = new List<MySubmodels>()
};

最佳答案

您只需投影 IGrouping<string,MyModel>分组后收到的对象。试试这个:-

IEnumerable<MyModel> t = from p in src
group p by p.Name into sl
select new MyModel()
{
Name = sl.Key,
ModelSublists = sl.Select(x => new MySubmodel
{
Id = x.Id,
Title = x.Id
}).ToList()
};

关于c# - 使用 Linq 对列表元素进行分组并映射到新模型,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29793084/

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