0
public class PCE
{
        public string ActivityType { get; set; }
        public string ActivitySubtype { get; set; }
        public int Id { get; set; }            
}

public class ActionLimit
{
    public string PropertyName { get; set; }
    public string PropertyValue { get; set; }
    public int Nos { get; set; }
}

我收集了 PCE。说 -

            PCE pce = new PCE();
            pce.ActivityType = "Sales";
            pce.ActivitySubtype = "Loan2";
            pce.Id = 1;
            listPCE.Add(pce);

            pce = new PCE();
            pce.ActivityType = "Sales";
            pce.ActivitySubtype = "Loan1";
            pce.Id = 2;
            listPCE.Add(pce);

            pce = new PCE();
            pce.ActivityType = "Sales";
            pce.ActivitySubtype = "Subcat";
            pce.Id = 3;
            listPCE.Add(pce);

            pce = new PCE();
            pce.ActivityType = "Loyalty";
            pce.ActivitySubtype = "Loan";
            pce.Id = 4;
            listPCE.Add(pce);

我有一组 ActionLimits。说 -

        ActionLimit al = new ActionLimit();
        al.PropertyName = "ActivityType";
        al.PropertyValue = "Sales";
        al.Nos = 2;
        listActionLimit.Add(al);

        al = new ActionLimit();
        al.PropertyName = "ActivitySubtype";
        al.PropertyValue = "Loan";
        al.Nos = 1;
        listActionLimit.Add(al);

问题陈述:我需要算法通过 ActionLimit “Nos” 属性来限制 PCE 的收集。在上面的示例中,我需要将 PCE 限制为 2 个销售活动类型和 1 个贷款活动子类型。对于 PCE 的任何属性(不仅仅是 ActivityType 和 ActivitySubtype),该算法需要足够通用。此外,各种 ActionLimits 的结果应该是 ANDed。(所以在上面的例子中——在 2 个销售 PCE 中,如果其中一个不是 Loan ActivitySubtype,则将其排除在外)。

4

1 回答 1

0

您只需要遍历 PCE 项目列表并将符合条件的项目添加到选定项目列表中。为了推广到 Java 中 PCE 的任何属性,您可以使用反射(例如查看本教程)。

于 2013-01-22T20:36:03.797 回答