【问题标题】:how to store listbox values in a string variable in c#如何在c#中将列表框值存储在字符串变量中
【发布时间】:2015-06-22 15:40:25
【问题描述】:

我想将所有列表框控件值存储在一个用“,”分隔的字符串中,以便我可以在标签中显示它。我正在使用 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();
        }
  }

【问题讨论】:

  • 错误是什么究竟
  • 为什么要查看|| ListBox2.Items.Count &gt; 0?这没有多大意义,不是吗?
  • ii 只想将左侧列表框中的项目添加到右侧列表框中。如果我不给出那个条件,我必须在提交时选择正确的盒子项目,否则它不会接受
  • 我认为你的权利两者都没有必要,一个条件就足够了,即 ListBox2.Items.Count > 0

标签: c# asp.net arrays collections listbox


【解决方案1】:
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;
                   }

                }

            }

【讨论】:

    【解决方案2】:

    我会使用 LINQ + String.Join:

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

    这样阅读会更好,而且您不需要关心尾随的逗号。

    【讨论】:

      【解决方案3】:

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

      string projectnames = "";
      for (int i = 0; i < ListBox2.Items.Count; i++)
      {
      
          if (ListBox2.Items[i].Selected)
          {
             projectnames += ListBox2.Items[i].ToString() + ", ";
          }
      
       }
      

      【讨论】:

        【解决方案4】:

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

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

        (这使用 System.Linq)

        【讨论】:

          【解决方案5】:

          试试这个,对你有帮助!

          protected void btnSave_Click(object sender, EventArgs e)
              {
                  string selectedItem=string.Empty;
                  if (ListBox1.Items.Count > 0)
                  {
                      for (int i = 0; i < ListBox1.Items.Count; i++)
                      {
                          if (ListBox1.Items[i].Selected)
                          {
                              selectedItem += ListBox1.Items[i].Text.ToString() + ", ";
                              //insert command
                          }
                      }
                  }
              }
          

          【讨论】:

            猜你喜欢
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 2018-12-01
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 2014-07-27
            相关资源
            最近更新 更多