C#从父事件创建子事件

时间:2011-04-19 14:46:58

标签: c# events

我有一个事件列表(例如List),它们有一个开始和结束日期,一些事件可以是每周事件(IsWeekly)。我需要从单个事件中创建每周事件列表。 E.g。

myEvent start 19/04/2011 ends 10/05/2011(这是我数据库中的单个事件)

我需要输出:

myEvent 19/04/2011

myEvent 26/04/2011

myEvent 03/05/2011

myEvent 10/05/2011

上述4个事件需要添加到我的列表中,并删除原始的“父”事件。

4 个答案:

答案 0 :(得分:2)

var current = startDate;
do {
  list.Add(new MyEvent("My Event", current));
  current = current.AddDays(7);
} while (current < endDate);

答案 1 :(得分:0)

我不确定我是否正确理解了您的问题,但我认为您需要定义您的委托类型,然后定义一个事件:

delegate void YourDelegate(DateTime d);
event YourDelegate YourEvent = null;

然后在需要时调用它:

if (YourEvent != null) YourEvent(DateTime.Now);

答案 2 :(得分:0)

创建一个查找表,它有两列作为事件的键,并具有ParentEvent | ChildEvent布局,因此如果您的“父”有3个孩子,则他的键会被列出3次,与不同的子键相关联。

答案 3 :(得分:0)

List<DateTime> GetEvents(DateTime start, DateTime end)
{
    List<DateTime> events = new List<DateTime>();

    DateTime e = start;
    while(e <= end)
    {
         e = e.AddDays(7);
         events.Add(e);
    }

    return events;
}