gpt4 book ai didi

c# - 复杂的 C# Linq 算法

转载 作者:塔克拉玛干 更新时间:2023-11-03 02:59:53 29 4
gpt4 key购买 nike

<分区>

我有一个 C# 问题要解决。我正在创建一个可以确定最短路线的应用程序。有一个港口网络,该方法需要计算出最快的路线。

我的方法已经走到这一步了,但似乎我在复制代码,可能的路线可能会永远持续下去。有没有人知道更好的方法来测试所有可能的旅程,以便我能够计算出最短的旅程?

 public int ShortestJourneyTime(string startPort, string endPort)
{
int shortJourneyTime = 0;
var possStartRoutes = RouteData.Where(p => p.Key[0] == startPort);

if (possStartRoutes.Count() <= 0)
throw new InvalidOperationException(string.Format("{0} : Start port is invalid", startPort));

foreach (var p in possStartRoutes)
{
int currentJourneyTime = p.Value;

var possRoutes2 = RouteData.Where(p2 => p2.Key[0] == p.Key[1]);

foreach (var p2 in possRoutes2)
{
if (p2.Key[1] == endPort)
{
currentJourneyTime += p2.Value;
if (shortJourneyTime > currentJourneyTime || shortJourneyTime == 0)
shortJourneyTime = currentJourneyTime;
}
else
{
var possRoutes3 = RouteData.Where(p3 => p3.Key[0] == p2.Key[1]);
}
}
}

return shortJourneyTime;
}

端口数据存储如下

  Dictionary<List<string>, int>  testData = new Dictionary<List<string>, int>();

List<string> routeOne = new List<string>() { "Buenos Aires", "New York" };
testData.Add(routeOne, 6);

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com