我在将列表框中的选定值转换为字符串时遇到了一些问题。
列表框包含多个值,我们称之为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
的多个实例,而不只是一个包含多个数组值的字符串。
答案 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);