使用LinQ将列表转换为宿舍列表

使用LinQ将列表转换为宿舍列表,linq,list,Linq,List,我有一个项目列表:list 我想将其转换为项目+季度->列表 项目还包含另一个列表,即ItemDetails 如何将Item对象复制到另一个Item对象,并使用LinQ从CreatedDate检索quarter 我还添加了将日期转换为季度的季度结构。但我无法将list转换为list 类项目{ 公共int Id{get;set;} 公共日期时间CreatedDate{get;set;} 公共字符串名称{get;set;} 公共列表项详细信息{get;set;} } 公共结构区 { 公共季度(国际年

我有一个项目列表:
list
我想将其转换为
项目+季度->列表

项目还包含另一个列表,即ItemDetails

如何将Item对象复制到另一个Item对象,并使用LinQ从CreatedDate检索quarter

我还添加了将日期转换为季度的季度结构。但我无法将
list
转换为
list

类项目{
公共int Id{get;set;}
公共日期时间CreatedDate{get;set;}
公共字符串名称{get;set;}
公共列表项详细信息{get;set;}
}
公共结构区
{
公共季度(国际年、国际季度指数)
{
年=年;
四分之一指数=四分之一指数;
}
公共静态季度起始日期(日期时间日期)
{
返回新季度(日期年,1+(日期月-1)/3);
}
公共国际年;
公共指数;
}
公共类项目模型
{
公共项项{get;set;}
公共四分之一{get;set;}
}

您能帮我吗?

您不能将
列表
转换为
列表
,但您可以创建一个新列表:

List<Item> itemList = ...;
List<ItemModel> itemModelList = itemList
    .Select(item => new ItemModel { Item = item, Quarter = Quarter.FromDate(item.CreatedDate)})
    .ToList();
List itemList=。。。;
List itemModelList=itemList
.Select(item=>new ItemModel{item=item,Quarter=Quarter.FromDate(item.CreatedDate)})
.ToList();

我建议的第一件事是:使您的
Quarter
struct不可变,并保持字段私有。(而是公开属性。)接下来,实现
IEquatable
IComparable
。顺便说一句,不清楚为什么需要
ItemModel
类型。您是否可以将只读的
Quarter
属性添加到
,该属性通过调用
Quarter.FromDate(CreatedDate)
来实现?您可以添加代码吗?不,因为不清楚它有多有用。。。你应该能够很容易地自己添加它。我建议的哪一部分您觉得难以实施?
List<Item> itemList = ...;
List<ItemModel> itemModelList = itemList
    .Select(item => new ItemModel { Item = item, Quarter = Quarter.FromDate(item.CreatedDate)})
    .ToList();