C#将ListBox转换为String然后聚合

时间:2009-12-08 15:10:14

标签: c#

我有一个从组合框中填充的列表框。我需要做的是将列表框的所有内容串起来然后聚合它。

string cols = listbox1.items.Aggregate((f, s) => f.value + "," + s.value);

不起作用。

5 个答案:

答案 0 :(得分:3)

Items是一个ObjectCollection,所以你肯定知道的是它包含了对象。您可以在任何对象上调用ToString:

        string[] items = listBox1.Items
            .OfType<object>()
            .Select(item => item.ToString())
            .ToArray();
        string result = string.Join(",", items);

请注意,这比使用聚合更具可读性和效率,这会导致多个字符串连接。

答案 1 :(得分:1)

假设您在列表框中有字符串,请尝试:

string cols =
    String.Join(",", listbox1.Items
        .OfType<Object>()
        .Select(i => i.ToString())
        .ToArray());

通常 String.Join 用于加入字符串。这比使用StringBuilder更快,因为新字符串的大小已经知道,并且不必将所有内容复制两次。

答案 2 :(得分:1)

非常古老的主题,但如果还有人需要它,这是我的解决方案

string cols = string.Join(",", listBox1.Items.Cast<String>());

答案 3 :(得分:0)

string cols = listBox1.Items.Cast<string>().Aggregate((f, s) => f + "," + s);

答案 4 :(得分:0)

我认为你需要明确地做ToString()

string cols = listbox1.items.Aggregate((f, s) => f.value.ToString() + "," + s.value.ToString());