【问题标题】:c# copy selected listbox items into a stringc# 将选定的列表框项复制到一个字符串中
【发布时间】:2013-07-21 21:09:03
【问题描述】:

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

列表框包含多个值,我们称它们为 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 只显示一个值,而不是所有选定的值。我尝试在foreach 循环中添加finalStr,但这会创建finalStr 的多个实例,而不仅仅是一个具有多个数组值的字符串。

【问题讨论】:

    标签: c# foreach listbox


    【解决方案1】:

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

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

    【讨论】:

      【解决方案2】:

      您总是将 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);
      

      【讨论】:

        猜你喜欢
        • 2020-08-02
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2012-05-09
        • 2013-10-14
        • 2012-09-10
        • 2022-11-30
        • 1970-01-01
        相关资源
        最近更新 更多