【问题标题】:How to assign contents of List<String> to a RichTextBox?如何将 List<String> 的内容分配给 RichTextBox?
【发布时间】:2012-06-21 00:26:57
【问题描述】:

我试过这个:

richTextBoxResults.Text = listStrSessionIdLines.ToString();

...但是获取 List 的 ToString() 表示形式(我猜这就是:“System.Collections.Generic.List`1[System.String]”)。

...我试过这个:

listStrSessionIdLines.CopyTo(richTextBoxResults.Lines);

...但我得到,“参数异常未处理。目标数组不够长。检查 destIndex 和长度,以及数组的下限。

这是否意味着我必须先为 RichTextBox 分配多行,或者...???

【问题讨论】:

  • 另一个我赖以生存的技巧是当我需要调用一个方法时,例如String.Format 我将鼠标悬停以便我可以看到该方法所期望的 - expects being the keyword。然后说它想要类型 X 的参数中的参数,我声明类型 X 并将其传入。方法通常有重载,这意味着它们可以使用不同的参数,因此按向上/向下滚动浏览它们也很有帮助找出在您的情况下最方便的方法。当您将参数传递给方法(在其参数中)时,输入逗号以刷新指示每个参数数据类型的工具提示。

标签: c# winforms generics arraylist richtextbox


【解决方案1】:

这对我有用:

myRichTextBox.Lines = myList.ToArray();

【讨论】:

    【解决方案2】:

    Most classes in the BCL have a ToString() method.

    当涉及到 List Of strSessionIdLines 时,ToString() 会告诉您它是什么类型的对象。

    如果您将 int 转换为 string,则 int.ToString() 将返回其值,但如果您在整数数组 int[].ToString 上执行此操作,则 ToString() 方法不会返回例如逗号/linefeed 分隔的字符串值。如您所料。

    这就是为什么将 .ToArray 分配给 .Lines 属性的原因 RichTextBox 或循环(或聚合)连接字符串列表 成一个字符串以适应 RichTextBox 作品的 .Text 属性。

    我的另一个提示是当我需要调用一个方法时,例如String.Format,我将鼠标悬停,以便我可以看到该方法所期望的 - expectsbeing the keyword。然后说该方法想要类型 X 的参数中的参数,我声明类型 X 并将其传入。方法通常有重载,这意味着它们可以使用不同的参数,因此按上/下滚动浏览它们也很有帮助找出在您的情况下最方便的方法。当您将参数传递给方法(在其参数中)时,输入逗号以刷新指示每个参数数据类型的工具提示。

    【讨论】:

      【解决方案3】:

      试试这个:

      List<String> list = new List<String>();
      list.Add("1");
      list.Add("2");
      richTextBox1.Lines = list.ToArray();
      

      【讨论】:

        【解决方案4】:

        使用 linq Aggregate 在序列上应用累加器函数。

        richTextBoxResults.Text = listStrSessionIdLines.Aggregate((i, j) => i + j);
        

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 2016-04-18
          • 2015-10-12
          • 2020-11-30
          • 2012-09-05
          • 1970-01-01
          • 2017-03-11
          • 2020-08-26
          • 2012-11-14
          相关资源
          最近更新 更多