在textBox(Winforms)中显示列表<String>

igg*_*012 14 c# textbox list

Noob问题......我正在尝试在文本框中显示List ...不幸的是,我的代码只显示列表中的第一个元素...

    private void Form1_Load(object sender, EventArgs e)
    {
        List<String> vegetables = new List<String>();
        vegetables.Add("tomato");
        vegetables.Add("carrot");
        vegetables.Add("celery");
        vegetables.Add("potato");

        textBox1.Text = displayMembers(vegetables);
    }

    public string displayMembers(List<String> vegetables)
    {
        foreach (String s in vegetables)
        {
            return s.ToString();
        }
        return null;
    }
Run Code Online (Sandbox Code Playgroud)

如何让textBox显示所有成员?我的错误在哪里?

SLa*_*aks 30

一旦你return s.ToString(),该方法的其余部分停止运行.
一个方法不能返回多个东西.

你可能想写

someTextBox.Text = String.Join(Environment.NewLine, vegetables);
Run Code Online (Sandbox Code Playgroud)


slu*_*ter 6

使用string.Join():

textbox1.Text = string.Join(" ", vegetables);
Run Code Online (Sandbox Code Playgroud)

答案比你想象的更接近,更容易:)

注意:如评论中所述,此特定函数在.Net框架的v4.0中添加了几个重载.如果您想查看早期版本的可用内容,请使用Other VersionsMSDN doco页面标题下方的下拉列表.