分组非静态类属性

时间:2014-10-02 08:50:48

标签: c# .net properties non-static

我正在写一个.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中的“批处理”不是静态的,我无法从结构内部访问它们。 我出于同样的原因不能使用其他课程。

(这不是一个具体问题,只是一个让问题易于理解的例子)

提前谢谢

1 个答案:

答案 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); }}
    // ...
}

如果您希望可以缓存它,请在批量更改等时重置它......