我在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/