【发布时间】:2015-09-09 16:11:28
【问题描述】:
我有一个这样的收藏:
IEnumerable<RecordToSend> recordsToSend;
由以下组成:
public class RecordToSend {
public Guid ApplicationId { get; set; }
public ScheduleTypes Schedule { get; set; }
}
并标记枚举:
[Flags]
public enum ScheduleTypes
{
None = 0,
Daily = 1,
Weekly = 2,
Monthly = 4
}
假设我有以下集合,它基本上是使用实体框架查询从数据库中提取出来的:
| ApplicationId | Schedule |
| ABC123 | 7 |
| DEF456 | 3 |
什么是将枚举拆分为多个不同记录的有效方法,从而导致这种情况(可以使用RecordToSend 类或其他类型,如果有意义的话,甚至是动态的):
| ApplicationId | Schedule |
| ABC123 | 1 |
| ABC123 | 2 |
| ABC123 | 4 |
| DEF456 | 1 |
| DEF456 | 2 |
注意 ScheduleTypes 枚举有一个 0 值标志,我想在结果中忽略它。
效率并不是最重要的问题,尽管我很想听听对不同方法的性能的看法。如果在我将集合从数据库中拉出时,作为实体框架查询的一部分,可以在一个步骤中执行此拆分,那就太好了。在应用程序中,我不需要处于原始多值状态的枚举标志。
【问题讨论】: