我有主列表中的项目列表,主列表有子列表,现在我需要主列表中有相同日期的所有项目添加子列表的项目。有谁知道任何推荐?以下是示例:https://dl.dropboxusercontent.com/u/40039421/Sn%C3%ADmka.PNG
public class calendarData
{
public string name { get; set; }
public string shortName { get; set; }
public DateTime HOURstartDT { get; set; }
}
public static List<List<calendarData>> getCalList()
{
List<calendarData> lessons = new List<calendarData>();
for (int i = 0; i < test.getResp().GetStudies(0).LessonsList.Count; i++)
{
for (int j = 0; j < test.getResp().GetStudies(0).GetLessons(i).HoursCount; j++)
{
lessons.Add(new calendarData
{
name = test.getResp().GetStudies(0).GetLessons(i).Name,
shortName = test.getResp().GetStudies(0).GetLessons(i).Shortname,
HOURstartDT = new DateTime(test.getResp().GetStudies(0).GetLessons(i).GetHours(j).StartTime.Year, test.getResp().GetStudies(0).GetLessons(i).GetHours(j).StartTime.Month, test.getResp().GetStudies(0).GetLessons(i).GetHours(j).StartTime.Day, test.getResp().GetStudies(0).GetLessons(i).GetHours(j).StartTime.Hour, test.getResp().GetStudies(0).GetLessons(i).GetHours(j).StartTime.Minute, 0),
});
}
}
List<List<calendarData>> listOfList=new List<List<calendarData>>();
foreach (calendarData subList in lessons)
{
listOfList.Add(new List<calendarData> {subList});
}
return listOfList;
}
现在我得到结果:10个项目的列表,每个项目都有一个项目列表。我如何比较HOURstartDT和我需要添加到主列表子列表的第一个列表的所有项目。
示例:主列表:第1项:name =“Jon”,Date = 14.6.2013第2项:name =“Steve”,Date = 15.6.2013,第3项:name =“Michael”,Date = 14.6。 2013
我需要具有相同日期(14.6.2013)的项目添加到子列表中的项目,并从主列表中删除这些项目。
答案 0 :(得分:1)
你可以尝试这样的东西,使用linq
var mySubList = lessons.Where(l => l.HOURstartDT == AddYourDataHere);
mySubList.ForEach(item =>
{
lessons.remove(item);
});
不确定我理解完整的问题,但这将是一个开始
答案 1 :(得分:1)
我正在为您提供静态数据的解决方案。你可以使用它。
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();
}