【发布时间】:2020-01-21 10:05:07
【问题描述】:
您能否帮助我逐步说明我需要在同一条火车线上找到方向的逻辑。已经拥有具有 Next 和 Previous 功能的公共火车线。
public IStation Next(IStation s)
{
if (!_stations.Contains(s))
{
throw new ArgumentException();
}
var index = _stations.IndexOf(s);
var isLast = index == _stations.Count -1;
if (isLast)
{
return null;
}
return _stations[index + 1];
}
public IStation Previous(IStation s)
{
if (!_stations.Contains(s))
{
throw new ArgumentException();
}
var index = _stations.IndexOf(s);
var isFirst = index == 0;
if (isFirst)
{
return null;
}
return _stations[index - 1];
}
还有我寻找方向的功能。
public string GetLineDirectiom(Station from, Station to, Line commonLine)
{
bool fromNextTo = true;
//to.Lines.Count();
//to.ToString();
var Final = commonLine.Next(from);
while (Final != null)
{
}
if (fromNextTo)
return "next";
else return "previous";
}
【问题讨论】:
-
Line commonLine是什么? -
在检查 _stations.Contains 和 _stations.IndexOf 时,您会做双重工作。如果找不到站,IndexOf 将返回 -1。请修复它:)
-
@PavelAnikhouski:显然,
Line类的实例包含来自第一个代码块的Next和Previous方法。
标签: c# next directions