在 C# 中将数组列表转换为逗号分隔的字符串

Ant*_*raq 0 c# asp.net arrays

我正在使用String.Join尝试将数组列表转换为逗号分隔的字符串,例如

xxx@xxx.com,yyy@xxx.com,zzz@xxx.com,www@xxx.com
Run Code Online (Sandbox Code Playgroud)

我似乎无法让语法正常工作。

这是我正在尝试的:

    for (i = 0; i < xxx; i++)
    {
        MailingList = arrayList[i].ToString();
        MailingList = string.Join(", ", MailingList.ToString());
        Response.Write(MailingList.ToString());
    }
Run Code Online (Sandbox Code Playgroud)

你能帮助我吗?

先感谢您-

cub*_*brr 5

从您的变量名称 ( arrayList)猜测,您在那里得到了List<string[]>或等效的类型。

这里的问题是您正在调用ToString()数组。试试这个:

for (i = 0; i < xxx; i++)
{
    var array = arrayList[i];
    MailingList = string.Join(", ", array);
    Response.Write(MailingList);
}
Run Code Online (Sandbox Code Playgroud)

编辑:如果arrayList只是一个ArrayList包含字符串,你可以做

Response.Write(string.Join(", ", arrayList.OfType<string>()));
Run Code Online (Sandbox Code Playgroud)

就我个人而言,ArrayList如果可能的话,我会避免使用非泛型集合(例如),并使用System.Collections.Generic诸如List<string>. 例如,如果您有一段代码依赖于ArrayList字符串的所有内容,如果您不小心添加了一个不是字符串的项目,它将遭受灾难性的后果。

编辑2:如果您ArrayList实际上包含System.Web.UI.WebControls.ListItem您在评论中提到的 s: arrayList.AddRange(ListBox.Items);,那么您需要改用它:

Response.Write(string.Join(", ", arrayList.OfType<ListItem>()));
Run Code Online (Sandbox Code Playgroud)