【问题标题】:Add string with List to a multiline textbox将带有列表的字符串添加到多行文本框
【发布时间】:2016-09-04 03:17:07
【问题描述】:

我正在尝试使用此代码在 textbox 中添加 liststring

ilaninfotextbox.Text = string.Join(Environment.NewLine, ilantextinner, combinelist);

ilantextinnerstring 并在文本框中正确显示

ilantextinner 是一个 List<string>,其中包含 20 行

ilantextinner 列表在文本框中显示如下:

System.Collections.Generic.List`1[System.String]

如何在文本框中显示ilantextinner 的内容?

注意:如果我只使用ilantextinner,内容会正确显示。

【问题讨论】:

  • ilaninfotextbox.Text = string.Join(Environment.NewLine, String.Join(',', lantextinner.ToArray()), combinelist);
  • 请创建一个minimal reproducible example。你说了很多关于你的代码,但你说的最多是不正确或不完整的,写一个实际编译的小例子将大大有助于获得有用的答案。

标签: c# asp.net winforms visual-studio


【解决方案1】:

首先,您需要加入列表,使其成为单个字符串:

string joinedList = string.Join(Environment.NewLine, combinelist);

然后你把这个字符串加入TextBox字符串:

ilaninfotextbox.Text = string.Join(Environment.NewLine, ilantextinner, joinedList);

【讨论】:

    【解决方案2】:

    Join 函数有 5 个重载。这是使用您的代码调用的:

    public static String Join(String separator, params object[] values);
    

    它告诉我们什么?

    此方法在分隔符后接收object 数组,由于它使用params 关键字,因此该方法实际上在values 参数上接收:

    new object[] { ilantextinner, combinelist };
    

    该方法将仅“循环”通过在 values 参数上找到的对象并将其称为 ToString()

    如何解决?

    我会做类似的事情来达到你想要的结果:

    combinelist.Insert(0, ilantextinner);
    ilaninfotextbox.Text = string.Join(Environment.NewLine, combinelist);
    

    第一行将ilantextinner 添加到列表的开头,因此您可以简单地使用期望IEnumerable<string>Join 重载。

    有关params关键字的更多了解,请参阅此链接:https://msdn.microsoft.com/en-us/library/w5zay9db.aspx

    【讨论】:

      【解决方案3】:

      你想使用

      string.join(string sepeator,params string[] value);
      

      但是因为你没有将列表转换为字符串数组,编译器认为你会使用

      string.join(string sepeator,params object[] value);
      

      所以将 List 转换为字符串数组

      ilaninfotextbox.Text = string.Join(Environment.NewLine, String.Join(' ', lantextinner.ToArray()), combinelist); 
      

      【讨论】:

        猜你喜欢
        • 2021-06-09
        • 1970-01-01
        • 2013-09-24
        • 1970-01-01
        • 2019-12-17
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多