2016-08-23 4 views
-2

(MyClass에의) 내가 가진 내가 두 속성에 대한 문자열이와 클래스와 배열을 초기화 할 방법이목록 초기화 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

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