10

レガシーアプリケーションのため、いくつかのC#コードをVB6に移植しています。ペアのリストを保存する必要があります。連想ルックアップを行う必要はありません。アイテムのペアを格納できる必要があります。

移植元のスニペットは次のようになります。

List<KeyValuePair<string, string>> listOfPairs;

これをC++に移植する場合は、次のようなものを使用します。

std::list<std::pair<string, string> > someList;

これがPythonの場合、タプルのリストを使用します。

someList.append( ("herp", "derp") )

ライブラリタイプを探していますが、必要に応じて他のタイプを選択します。私はLAZYになろうとしており、この機能を取得するためにcYetAnotherTinyUtilityClass.clsを記述したり、頻繁に悪用される文字列操作にフォールバックしたりする必要はありません。

私はグーグルを試してみましたが、VB6は実際にはオンラインで十分に文書化されておらず、そこにあるものの多くは十分に挑戦されています。BigResourceを見たことがあれば、私が何を意味するのかわかるでしょう。

4

5 に答える 5

8

バリアントのコレクションは非常に柔軟である可能性があり、実際にそれらを打ち負かしていない限り、パフォーマンスは問題になりません。

Private Sub SomeCode()
    Dim Pair As Variant
    Dim ListOfPairs As Collection

    Set ListOfPairs = New Collection

    With ListOfPairs
        Pair = Array("this", "that")
        .Add Pair

        .Add Array("herp", "derp")

        .Add Array("weet", "tweet")

        MsgBox .Item(1)(0) 'Item index is base-1, array index base-0.

        Pair = .Item(2)
        MsgBox Pair(1)

        ReDim Pair(1)
        Pair(0) = "another"
        Pair(1) = "way"
        .Add Pair
        MsgBox .Item(4)(1)
    End With
End Sub
于 2012-09-01T01:07:43.997 に答える
7

文字通り単なるストレージの場合は、次を使用できますType

Public Type Tuple
    Item1 As String
    Item2 As String
End Type

ストレージを行うためにクラスを必要とするよりも少し簡潔です。

(より広く UDT として知られている)の問題Typesは、それらでできることに制限があることです。UDT の配列を作成できます。UDTのコレクションを作成することはできません。

.Net に関しては、.Net に最も似ていますStruct

ここまたはここに基本のウォークスルーがあります。

于 2012-08-31T20:36:37.177 に答える
0

クラスを一覧表示しますか? (VB セクションを参照): http://msdn.microsoft.com/en-us/library/6sh2ey19#Y0

辞書クラス? http://msdn.microsoft.com/en-us/library/xfhwa508

于 2012-08-31T20:38:24.850 に答える
0

コレクションを使用できます

dim c as new collection
c.add "a", "b"
于 2012-08-31T20:38:27.423 に答える