我想根据所选日期从列表中获取值。我知道这是模糊的,但继续阅读理解。 我有两个列表,房间和fullList。
客房仅包含房号/姓名:
7-04
7-05
7-06
7-07 (Small Conference Room)
7-08
Large Conference Room
fullList包含几个字符串的串联('#'用作分隔符,房间也与上面的列表相同):
event_id + "#" + text + "#" + eventStart + "#" + eventEnd + "#" + repeat+ "#" + Days + "#" + room + "#" + startDate);
fullList中的一个简单输入显示为:
"3#CISC3345#10:45#13:00#0#Monday:Wednesday#7-08#10/03/2014"
我想要的是一个新的列表,我想在eventStart之前和evnetEnd之后得到每个房间的时间,边界为“9:00”和“22:00”。
所以例子:
示例数据看起来像这样(每行是fullList中的值):
Event_ID Event EventStart EventEnd Days Repeat Rooms DayStarts
2 CISC 3660 09:00:00 12:30:00 Monday 1 7-07 9/19/2014
4 MATH 2501 15:00:00 17:00:00 Monday:Wednesday 0 7-04 10/13/2014
5 CISC 1110 14:00:00 16:00:00 Monday 1 7-07 9/19/2014
7 CISC 1340 15:00:00 22:00:00 Monday 1 7-08 9/19/2014
我希望得到不在eventStart和eventEnd之间的时间。
离。对于SelectedDate(2014年9月19日),列表应返回:
Room FreeTimeStart FreeTimeEnd
7-07 12:30:00 14:00:00
7-07 16:00:00 22:00:00
7-08 09:00:00 15:00:00
EX2。 SelectedDate(10/13/2014):
Room FreeTimeStart FreeTimeEnd
7-04 9:00:00 15:00:00
7-04 17:00:00 22:00:00
答案 0 :(得分:0)
public class FullList {
public int ID { get; set; }
public string Event { get; set; }
public string Text { get; set; }
public DateTime EventStart { get; set; }
public DateTime EventEnd { get; set; }
public string Days { get; set; }
public int Repeat { get; set; }
public string Room { get; set; }
public DateTime StartDate { get; set; }
public override string ToString() {
return ID + "#" + Text + "#" + EventStart + "#" + EventEnd + "#" + Repeat+ "#" + Days + "#" + Room + "#" + StartDate);
}
}
public class FullListCollection : List<FullList> {
public List<FullList> FindByStartEnd (DateTime start, DateTime end) {
return this.FindAll(x => x.EventStart >= start && x.EventEnd <= end);
}
}
// in the client class, assume we have a populated FullListCollection
myEventList // our list of events
FullListCollection EventsInDateRange = myEventList.FindByStartEnd ( <somestartdate>, <someenddate>);