gpt4 book ai didi

c# - 在 foreach 中创建对象以推送到 C# 中的数组

转载 作者:太空宇宙 更新时间:2023-11-03 20:20:17 24 4
gpt4 key购买 nike

我想要实现的是将一个字符串拆分为多个地址,例如“NL,VENLO,5928PN”,其中 getLocation 将返回一个“POINT( x y)”字符串值。

这行得通。接下来我需要为每个位置创建一个 WayPointDesc 对象。这些对象中的每一个都必须被插入 WayPointDesc[]。我尝试了各种方法,但到目前为止我找不到可行的选择。我最后的办法是硬编码最大数量的航路点,但我宁愿避免这样的事情。

不幸的是,使用列表不是一种选择......我认为。

这是函数:

    /* tour()
* Input: string route
* Output: string[] [0] DISTANCE [1] TIME [2] MAP
* Edited 21/12/12 - Davide Nguyen
*/
public string[] tour(string route)
{
// EXAMPLE INPUT FROM QUERY
route = "NL,HELMOND,5709EM+NL,BREDA,8249EN+NL,VENLO,5928PN";
string[] waypoints = route.Split('+');

// Do something completly incomprehensible
foreach (string point in waypoints)
{
xRoute.WaypointDesc wpdStart = new xRoute.WaypointDesc();
wpdStart.wrappedCoords = new xRoute.Point[] { new xRoute.Point() };
wpdStart.wrappedCoords[0].wkt = getLocation(point);
}

// Put the strange result in here somehow
xRoute.WaypointDesc[] waypointDesc = new xRoute.WaypointDesc[] { wpdStart };

// Calculate the route information
xRoute.Route route = calculateRoute(waypointDesc);
// Generate the map, travel distance and travel time using the route information
string[] result = createMap(route);
// Return the result
return result;

//WEEKEND?
}

最佳答案

数组是定长的,如果要动态添加元素,就需要使用某种类型的链表结构。此外,您的 wpdStart 变量在您最初添加时超出了范围。

    List<xRoute.WaypointDesc> waypointDesc = new List<xRoute.WaypointDesc>();

// Do something completly incomprehensible
foreach (string point in waypoints)
{
xRoute.WaypointDesc wpdStart = new xRoute.WaypointDesc();
wpdStart.wrappedCoords = new xRoute.Point[] { new xRoute.Point() };
wpdStart.wrappedCoords[0].wkt = getLocation(point);

// Put the strange result in here somehow
waypointDesc.add(wpdStart);
}

如果您以后真的想将该列表作为数组,请使用:waypointDesc.ToArray()

关于c# - 在 foreach 中创建对象以推送到 C# 中的数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13991833/

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