我在Visual C#项目中具有以下类:

    public class Bus
    {
    private int BusNumber;
    public int busNumber
    {
        get { return BusNumber; }
        set { BusNumber = value; }
    }

    public List<CircularRoute> circularRoute = new List<CircularRoute>();
    public List<LongDistance> longDistance = new List<LongDistance>();
    }


有什么办法可以限制两个列表的总和?我知道如果使用多态列表,可以使用if语句轻松完成此操作。目前,这不是我的选择。

最佳答案

不要将列表公开显示-请将它们设为私有并提供添加到每个列表的方法。

在这些方法中,您可以检查两个列表的计数,并且仅在阈值以下时才添加。

如果需要公开列表,我建议返回这些私有列表的副本(使用副本构造函数),这样就不会违反不变式。

private List<CircularRoute> circularRoute = new List<CircularRoute>();

public AddRoute(CircularRoute route)
{
  if(circularRoute.Count + longDistance.Count < threshold)
  {
    // add logic.
  }
  else
  {
    // Perhaps throw an exception
  }
}

public IEnumerable<CircularRoute> CircularRoutes
{
   get { return new List<CircularRoute>(circularRoute); }
}

关于c# - 限制2个单独列表的合并计数-C#,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/13700842/

10-11 08:08