C# 将日期相同的项目添加到项目主列表的子列表中

C# 将日期相同的项目添加到项目主列表的子列表中,c#,list,date,windows-8,windows-store-apps,C#,List,Date,Windows 8,Windows Store Apps,我在主列表中有项目列表,主列表中有子列表,现在我需要主列表中具有相同日期的所有项目如何添加子列表中的项目。有人知道有什么建议吗?以下是示例: 公共类日历数据 { 公共字符串名称{get;set;} 公共字符串短名称{get;set;} 公共日期时间HOURstartDT{get;set;} } 公共静态列表getCalList() { 列出课程=新建列表(); for(int i=0;ix.ToList()).ToList(); 返回StaticData.SelectMany(x=>x.ToLi

我在主列表中有项目列表,主列表中有子列表,现在我需要主列表中具有相同日期的所有项目如何添加子列表中的项目。有人知道有什么建议吗?以下是示例:

公共类日历数据
{
公共字符串名称{get;set;}
公共字符串短名称{get;set;}
公共日期时间HOURstartDT{get;set;}
}
公共静态列表getCalList()
{
列出课程=新建列表();
for(int i=0;i
现在我得到的结果是:10个项目的列表,每个项目都有一个项目的列表。如何比较HOURstartDT和第一个列表中所有日期相同的项目,我需要将它们添加到主列表的子列表中

示例:主列表:项目1:name=“Jon”,日期=14.6.2013项目2:name=“Steve”,日期=15.6.2013,项目3:name=“Michael”,日期=14.6.2013


我需要具有相同日期(2013年6月14日)的项目添加到子列表中,如项目,并从主列表中删除这些项目。

您可以使用linq尝试类似的操作

var mySubList = lessons.Where(l => l.HOURstartDT == AddYourDataHere);
mySubList.ForEach(item => 
           {
               lessons.remove(item);
           });

我不确定我是否理解全部问题,但这将是一个开始,我将用静态数据为您提供解决方案。你可以用这个

public List<List<calendarData>> getCalList()
{
    List<List<calendarData>> StaticData = new List<List<calendarData>> 
    {
        new List<calendarData> 
        {
            new calendarData
            {
                name = "Jon Jon",
                shortName = "Jon",
                HOURstartDT = DateTime.Now.Date.AddDays(-1)
            }
        },

        new List<calendarData> 
        {
            new calendarData
            {
                name = "Steve Steve",
                shortName = "Steve",
                HOURstartDT = DateTime.Now.Date
            }
        },

        new List<calendarData> 
        {
            new calendarData
            {
                name = "Michael Michael",
                shortName = "Michael",
                HOURstartDT = DateTime.Now.Date
            }
        }
    };

    //return StaticData.GroupBy(x => x.FirstOrDefault().HOURstartDT).Select(x => x.ToList()).ToList();
    return StaticData.SelectMany(x => x).ToList().GroupBy(x => x.HOURstartDT).Select(x => x.ToList()).ToList();
}
公共列表getCalList()
{
List StaticData=新列表
{
新名单
{
新日历数据
{
name=“Jon Jon”,
shortName=“Jon”,
HOURstartDT=DateTime.Now.Date.AddDays(-1)
}
},
新名单
{
新日历数据
{
name=“史蒂夫”,
shortName=“史蒂夫”,
HOURstartDT=DateTime.Now.Date
}
},
新名单
{
新日历数据
{
name=“迈克尔”,
shortName=“迈克尔”,
HOURstartDT=DateTime.Now.Date
}
}
};
//返回StaticData.GroupBy(x=>x.FirstOrDefault().HOURstartDT)。选择(x=>x.ToList()).ToList();
返回StaticData.SelectMany(x=>x.ToList().GroupBy(x=>x.hourstardt).Select(x=>x.ToList()).ToList();
}

ForEach在windows应用商店中不存在(
public List<List<calendarData>> getCalList()
{
    List<List<calendarData>> StaticData = new List<List<calendarData>> 
    {
        new List<calendarData> 
        {
            new calendarData
            {
                name = "Jon Jon",
                shortName = "Jon",
                HOURstartDT = DateTime.Now.Date.AddDays(-1)
            }
        },

        new List<calendarData> 
        {
            new calendarData
            {
                name = "Steve Steve",
                shortName = "Steve",
                HOURstartDT = DateTime.Now.Date
            }
        },

        new List<calendarData> 
        {
            new calendarData
            {
                name = "Michael Michael",
                shortName = "Michael",
                HOURstartDT = DateTime.Now.Date
            }
        }
    };

    //return StaticData.GroupBy(x => x.FirstOrDefault().HOURstartDT).Select(x => x.ToList()).ToList();
    return StaticData.SelectMany(x => x).ToList().GroupBy(x => x.HOURstartDT).Select(x => x.ToList()).ToList();
}