如何获取不直接在列表中的值
本文关键字:列表 何获取 获取 | 更新日期: 2023-09-27 18:29:16
我想从基于所选日期的列表中获取值。我知道这是模糊的,但继续阅读以理解。我有两份清单,房间和全套清单。
房间仅包含房间编号/名称:
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"answers"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之间的时间。
前任。对于选定日期(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.选择日期(2014年10月13日):
Room FreeTimeStart FreeTimeEnd
7-04 9:00:00 15:00:00
7-04 17:00:00 22:00:00
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>);