1

オブジェクトがList(Of String)あり、文字列の値に基づいて新しいコレクションを作成する必要があります。新しいコレクションは、2 つの文字列フィールドを持つカスタム クラスになります - それらKeyを呼び出しますValue(ただし、組み込みの KeyValue クラスではなく、カスタム クラスです)。

のすべての値はKey同じにValueなります。文字列リストから取得したいだけです。例:

Dim slValues = New List(Of String)({"Cod", "Halibut", "Herring"})
Dim myList   = New List(Of myClass)( ... amazing initialisation line here? )

Class myClass
  Public Key As String   ' This will always be "Fish"
  Public Value As String ' This will be the fish name.
End Class

(使用しているクラスに実際にアクセスできないことに注意してください。そのためPublic Key As String = "Fish"、デフォルトとして変更することはできません。Key実行時に設定する必要があります。)

もちろん、ループを実行して手動で実行することもできますが、初期化行の一部としてこれを達成するための画期的な方法があるかどうか疑問に思っていますか?

4

3 に答える 3

1

SelectLinq の関数を使用した Jodrell の回答の代替案を次に示します。

Dim myList = slValues.Select(Function(fish) New CustomClass With {.Key = "Fish", .Value=fish}).ToList()
于 2012-08-01T14:12:55.347 に答える
1

これはどう

Dim myList = slValues.ConvertAll(Of myClass)( _
    Function(s) New YourClass With {.Key = "Fish", .Value = s})
于 2012-08-01T08:51:27.037 に答える
0
from x in Enumerable.Range(1, slValues.count-1).ToArray 
select new KeyValuePair(of string,myClass) with {.Key=slValues(x),.Value=myList(x)}

それが役に立てば幸い。

于 2012-08-01T08:54:18.170 に答える