我正在写一个.Net库,这是我的场景: 我有一个“经理”类,其中包含“批次”列表。每个批次都有一个Status属性。
public class Batch
{
public string Status { get { return batchActualStatusVar; } }
}
BatchManager有一个枚举器,其键等于可能的批次状态。
public enum BatchStatus
{
Completed = 64,
Error = 32,
InProgress = 4
And so on.....
}
我在BatchManager中创建了属性,允许我根据它们分配批次状态,如下所示:
public List<Batch> BatchesCompleted {
get {
return Batches.Where(x => x.Status == BatchManager.BatchStatus.Completed.ToString()).ToList(); } }
问题 我可以通过哪种方式对属性进行分组,使其具有如下结构:
BatchManager
PropertiesGroup
BatchesCompleted
BatchesReady
....
我尝试使用BatchManager类中的结构,但问题是BatchManager中的“批处理”不是静态的,我无法从结构内部访问它们。 我出于同样的原因不能使用其他课程。
(这不是一个具体问题,只是一个让问题易于理解的例子)
提前谢谢
答案 0 :(得分:1)
创建属性BatchFilter
返回的PropertiesGroup
类,该类使用来自BatchManager
public class BatchFilter
{
private List<Batch> _batches;
public BatchFilter(List<Batch> batches)
{
_batches = batches;
}
public List<Batch> BatchesCompleted {
get {
return _batches.Where(x => x.Status == BatchManager.BatchStatus.Completed.ToString()).ToList(); } }
}
class BatchManager
{
public BatchFilter PropertiesGroup { get { return new BatchQuery(Batches); }}
// ...
}
如果您希望可以缓存它,请在批量更改等时重置它......