列表 Private msklistclass1 As New List(Of MaskedTextBox)
在执行以下代码后包含以下MaskedTextBox控件
For Each ctrl As Control In Me.pnlclass11.Controls
If TypeOf ctrl Is MaskedTextBox Then
msklistclass1.Add(ctrl)
End If
Next
seat112
seat212
seat312
seat412
seat512
seat612
seat122
seat222
seat322
seat422
seat522
seat622
但它们不符合我上面所示的顺序。当我尝试以顺序方式为这些控件赋值时,它们不会按顺序分配。
我尝试了以下代码
For i = 0 To 11 Step 1
msklistclass1(i).Text = rno312(i)
Next
我期望的作业是
seat112 1138M0321
seat212 1138M0322
seat312 1138M0323
seat412 1138M0324
seat512 1138M0325
seat612 1138M0326
但他们没有按此顺序分配
是否有可能对列表msklistclass1
这一行给出了以下输出msklistclass1.Sort(Function(x, y) x.Name.CompareTo(y.Name))
seat111 1138M0321 seat121 1138M0321
seat211 1138M0323 seat221 1138M0324
seat311 1138M0325 seat321 1138M0326
seat411 1138M0326 seat421 1138M0327
seat511 1138M0328 seat521 1138M0329
seat611 1138M0330 seat621 1138M0331
但我想要
seat111 1138M0321 seat121 1138M0327
seat211 1138M0322 seat221 1138M0328
seat311 1138M0323 seat321 1138M0329
seat411 1138M0324 seat421 1138M0330
seat511 1138M0325 seat521 1138M0331
seat611 1138M0326 seat621 1138M0332
答案 0 :(得分:2)
使用LINQ,您可以这样做:
Dim listOrdered = From m In msklistclass1 Order By m.Text
或者,如果您不能使用LINQ或不想使用LINQ,请执行以下操作:
msklistclass1.Sort(Function(x, y) x.Name.CompareTo(y.Text))
注意:如果您想按MaskedTextBox
的其他属性进行排序,只需将Text
更改为属性名称,例如Name
。