列表初始化vb.net
(的MyClass)我有一类这样的列表初始化vb.net
Class Myclass
itemdata as string
name as string
End Class
我如何初始化这个类和数组字符串的这两个属性?
这就是我想,这OS显然是错误的
Dim ls As New List(Of Myclass)(New Myclass() {("A1,A2,A3,A4".Split(","))})
我需要初始化后这样的事情,在列表中每个项目的价值就会像如果手动分配这样
List(0).itemdata="A1"
List(0).name="A1"
List(1).itemdata="A2"
List(2).name="A2"
等
以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) } }
这给:
根据您的修改,我认为这是更接近什么你想要:
Dim text = "A1,A2,A3,A4"
Dim ls = _
text _
.Split(","c) _
.Select(Function (x) New Myclass2() With { .itemdata = x, .name = x }) _
.ToList()
现在我得到这样的:
linq语句看起来不正确,它强调了从“From”到最后,表示预期的结尾 – Smith
@Smith - 根本没有LINQ代码。我在发布之前测试了代码。它是有效的VB.NET代码。 – Enigmativity
我正在使用vs2008,所以也许可能会有编译器的区别? – Smith
我已经改名为你的类(ES)......希望你明白什么ü意味着它:
创建类:
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
我改变了SubNew法与2个重载...现在ü需要调用的类的实例与参数(或无):
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
你真的需要一个[MCVE。什么是'dicOpts'? 'key'从哪里来? – Enigmativity
请检查编辑 – Smith
您如何期待四个值插入到具有两个字段的类中?你期望创建两个班还是四个班? – Enigmativity