c#将选定的列表框项目复制到字符串中

时间:2013-07-21 21:09:03

标签: c# foreach listbox

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

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

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的多个实例,而不只是一个包含多个数组值的字符串。

2 个答案:

答案 0 :(得分:5)

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

string finalStr = "Some text before the values " + 
           String.Join(", ", listboxName.SelectedItems.Cast<YourItemType>());

答案 1 :(得分: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);