2016-08-23 6 views
-2

私は私がこのクラスを初期化し、両方のプロパティのための文字列の配列んどのようにこの一覧初期化子vb.net

Class Myclass 
    itemdata as string 
    name as string 
End Class 

のようなクラスがありますか?

これは私が初期化後に、このようなものが必要明らかに間違っ

Dim ls As New List(Of Myclass)(New Myclass() {("A1,A2,A3,A4".Split(","))}) 

をOSれ、しようとしています。この

のように手動で割り当てられたかのように、リストの各項目の値がどのようになるかであります
List(0).itemdata="A1" 
List(0).name="A1" 
List(1).itemdata="A2" 
List(2).name="A2" 

など

+0

あなたは本当に[MCVE]が必要です。 'dicOpts'とは何ですか? 'キー'はどこから来たのですか? – Enigmativity

+0

pls編集を確認 – Smith

+0

2つのフィールドを持つクラスに4つの値が挿入されるとはどのように期待していますか? 2つのクラスまたは4つのクラスが作成されることを期待していますか? – Enigmativity

答えて

1

Myclassで始まるのは予約名なので、Myclass2を使用しました。

これは私がそれを作ることができ、あなたに最も近いコードです:

Dim dicOpts = New Dictionary(Of String, String) From {{"foo", "bar,woo"}} 
Dim key = "foo" 
Dim ls As New List(Of Myclass2) From { New Myclass2() With { .itemdata = dicOpts(key).Split(","c)(0), .name = dicOpts(key).Split(","c)(1) } } 

与えること:編集内容に基づいて

result


を、私はこれは何に近いと思いますあなたは欲しい:

Dim text = "A1,A2,A3,A4" 
Dim ls = _ 
    text _ 
     .Split(","c) _ 
     .Select(Function (x) New Myclass2() With { .itemdata = x, .name = x }) _ 
     .ToList() 

私は今、これを取得:

result2

+0

linq文が正しくないと思われます。文末に「From」を末尾に付けて、 – Smith

+0

@Smithの終わりを言っています - ここにはLINQコードはありません。私は転記する前にコードをテストしました。これは有効なVB.NETコードです。 – Enigmativity

+0

私はvs2008を使用していますので、多分コンパイラの違いがあるかもしれませんか? – Smith

-1

私はuがuはそれで意味を理解してほしい....あなたのクラス(複数可)と改名しました:

あなたのクラスを作成します。

Class xxx '(this was your 'myclass') 
    Private _p1 As String 
    Private _p2 As String 
    Private _p3 as String 

    Sub New(p1 As String, p2 As String) 
     ' TODO: Complete member initialization 
     _p1 = p1 
     _p2 = p2 
    End Sub 
    Sub New(p1 As String, p2 As String, p3 as String) 
     ' TODO: Complete member initialization 
     _p1 = p1 
     _p2 = p2 
     _p3 = p3 
    End Sub 
End Class 

私は2つのオーバーロードでSubNew-方法を変更したい...今uはパラメータ(またはなし)でクラスのインスタンスを呼び出す必要があります:

Class yyy 
    Private lf As New List(Of xxx) 
    Sub CallOrWhatEver() 
     lf.Add(New xxx("itemdata", "name")) 
     lf.Add(New xxx("p1value","p2value","p3value")) 
    End Sub 
End Class 
関連する問題