2

我在将列表框中的选定值转换为字符串时遇到了一些问题。

列表框包含多个值,我们称它们为 AZ。基本上,我想将所选项目复制到一个字符串中。

var listarray = new System.Collections.ArrayList(listboxName.SelectedItems);

string myval = "";

foreach (var arr in listarray)
{
    myval = dep.ToString();
    Console.WriteLine(myval); // this shows all the selected values
}

string finalStr = "some text before the values" + myval;
Console.WriteLine(finalStr);

我希望字符串显示“在值 A、B、C、D ... 之前的一些文本”,但是它输出“在值 A 之前的一些文本”

最后一个Console.WriteLine只显示一个值,而不是所有选定的值。我尝试添加循环finalStr内部foreach,但这会创建多个实例,finalStr而不是仅创建一个具有多个数组值的字符串。

4

2 回答 2

5

使用String.Join从项目集合构建连接字符串:

string finalStr = "Some text before the values " + 
           String.Join(", ", listboxName.SelectedItems.Cast<YourItemType>());
于 2013-07-21T21:12:52.377 回答
0

您总是将 myval 设置为 dep.ToString 的当前值-您应该将其连接起来(我认为您的意思是 arr 而不是 dep):

myval += arr.ToString() + ", ";

处理逗号的最简单方法是创建附加列表并使用 String.Join:

var selected = new List<string>();
foreach (var arr in listboxName.SelectedItems)
{
    selected.Add(arr.ToString());    
}

string finalStr = "some text before the values" + String.Join(", ", selected);
于 2013-07-21T21:10:41.000 回答