从大字符串创建列表框项

时间:2012-02-22 17:40:35

标签: c#

我有一个包含文字的大字符串:

"value 1

value 2

value 3

etc..." //over 100 values

我正在尝试根据此字符串中的值创建一个包含项目的列表框。

我使用了try catch,因为我得到一个超出范围异常的参数,它停止了错误,但我看不到列表框中的任何项目:P

string value = "";

int currentIndexPos = 0;

foreach (System.Text.RegularExpressions.Match m in System.Text.RegularExpressions.Regex.Matches(listStr, "\r\n?"))
{
    try
    {
        value = formatted.Substring(currentIndexPos, m.Index - 1); // -1 so the matched value isn't used.

        listBox1.Items.Add(value);

        currentIndexPos = m.Index + 1;
    }

    catch
    { 
        //argument out of range exception
        //Index and length must refer to a location within the string. Parameter name: length
    }
}

3 个答案:

答案 0 :(得分:2)

尝试这样的事情

var values = listStr.Split("\r\n".ToCharArray(), StringSplitOptions.RemoveEmptyEntries);
foreach(string value in values)
{
    listBox1.Items.Add(value);
}

答案 1 :(得分:2)

正如许多人所说,只需使用String.Split。但是,不需要foreach循环或使用LINQ,只需执行此操作:

listBox1.Items.AddRange(String.Split(...));

答案 2 :(得分:1)

由于您实际上在进行拆分,为什么不使用该函数并忽略索引操作。

var lst = String.Split("\r".ToCharArray(),"listStr");
lst.select((x)=>listBox1.Items.Add(x));