1

私が達成しようとしているのは、文字列を「NL、VENLO、5928PN」のような複数のアドレスに分割することです。これにより、getLocation は「POINT(xy)」文字列値を返します。

これは機能します。次に、場所ごとに 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?
    }
4

1 に答える 1

5

配列は固定長です。要素を動的に追加する場合は、ある種のリンクリスト構造を使用する必要があります。また、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()

于 2012-12-21T14:29:47.047 に答える