c# - 在 VB.NET 中将字符串生成器转换为字符串数组

标签 c# asp.net vb.net

我有一个带有复选框的 RadComoboBox,我想使用字符串生成器循环遍历复选框。获取该格式的值后: {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

aspx 代码:

<telerik:RadComboBox runat="server" 
                    CheckBoxes="true" 
                    ID="rcbFilterPersonType" 
                    EmptyMessage="Select Person Type" Enabled="True">
</telerik:RadComboBox>

最佳答案

您可以使用字符串的 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()

关于c# - 在 VB.NET 中将字符串生成器转换为字符串数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20641898/

相关文章:

c# - mvvm混淆模型和业务层连接

wpf - 用于使用 WPF 选择多个文件的 OpenFileDialog

asp.net - materializecss.com : Left SideBar Position Issue

c# - 更新面板内的链接按钮不起作用

c# - 在桌面应用程序中呈现 ASP.NET 控件?

c# - VB.Net 中的 Protected Set 用于接口(interface)中定义的属性

c# - asp.net 中的文件 uploader 不显示文件

c# - C#中如何通过子类的实例访问父类的方法

c# - 第一次使用 NLog

c# - winform 本地化为阿拉伯语并更改对齐方式