如何在c#中的字符串变量中存储列表框值

时间:2015-04-16 09:54:05

标签: c# asp.net arrays collections listbox

我想将所有列表框控件值存储在一个包含","的字符串中。分开,以便我可以在标签中显示它。我使用for循环但是给出了错误

 for (int i = 0; i < ListBox2.Items.Count; i++){

        if (ListBox2.Items[i].Selected == true || ListBox2.Items.Count > 0){
            string projectnames += ListBox2.Items[i].ToString();
        }
  }

4 个答案:

答案 0 :(得分:3)

string projectnames = "";
bool firstValue = true;

for (int i = 0; i < ListBox2.Items.Count; i++)
            {

                if (ListBox2.Items[i].Selected == true || ListBox2.Items.Count > 0)
                {
                   if(!firstValue)
                   {
                      projectnames += ", " + ListBox2.Items[i].ToString();
                   }
                   else
                   {
                      projectnames += ListBox2.Items[i].ToString();
                      firstValue = false;
                   }

                }

            }

答案 1 :(得分:0)

而不是循环我会使用LINQ + String.Join

var selected = ListBox2.Items.Cast<ListItem>()
    .Where(li => li.Selected)
    .Select(li => li.ToString());
string projectnames = String.Join(",", selected);

通过这种方式阅读更好,你不需要关心尾随逗号。

答案 2 :(得分:0)

这将生成列表中所有选定项目的字符串。

string projectnames = "";
for (int i = 0; i < ListBox2.Items.Count; i++)
{

    if (ListBox2.Items[i].Selected)
    {
       projectnames += ListBox2.Items[i].ToString() + ", ";
    }

 }

答案 3 :(得分:0)

我能想到的最简洁的方法是:

var label = string.Join(",", listBox2.Items.Cast<string>());

(这使用System.Linq)