我有一个带复选框的RadComoboBox,我想用String Builder循环复选框。获取该格式的值后:{1,2,3,4}我想将其转换为该格式的stringArray(1,2,3,4) 任何人都可以告诉我如何做到这一点?
Dim sbPeopleTypes As New StringBuilder()
Dim colGroups As IList(Of RadComboBoxItem) = rcbFilterPersonType.CheckedItems
For Each item As RadComboBoxItem In colGroups
sbPeopleTypes.Append(item.Value + ",")
Next
<telerik:RadComboBox runat="server"
CheckBoxes="true"
ID="rcbFilterPersonType"
EmptyMessage="Select Person Type" Enabled="True">
</telerik:RadComboBox>
答案 0 :(得分:5)
您可以使用字符串的Split
方法获取数组,如下所示:
Dim myArray() As String = sbPeopleTypes.ToString.Split(","c)
但是,除非您需要使用StringBuilder
,否则出于其他原因,最好使用列表,如下所示:
Dim peopleTypes As New List(Of String)()
For Each item As RadComboBoxItem In colGroups
peopleTypes.Add(item.Value)
Next
然后,如果你真的需要它作为一个数组,你可以像这样转换它:
Dim myArray() As String = peopleTypes.ToArray()
即使您确实需要将其格式化为逗号分隔字符串,您仍然可以轻松地从列表中构建它,而不是StringBuilder
,如下所示:
Dim csv As String = String.Join(",", peopleTypes)
或者,由于RadComboBox.CheckedItems
属性是IList(Of RadComboBoxItem)
,您可以使用Select
LINQ扩展方法将值作为列表或数组获取,而不使用For
循环,像这样:
Dim myArray() as String = rcbFilterPersonType.CheckedItems.Select(Function(x) x.Value).ToArray()